ເນື້ອໃນ

# ບໍລິການ SFDocuments.Writer

ໄລບຣາຣີສ່ວນກາງ SFDocuments ມີວິທີການ ແລະ ຄຸນສົມບັດຫຼາຍຢ່າງເພື່ອຊ່ວຍໃນການຈັດການ ແລະ ການປະມວນຜົນເອກະສານ LibreOffice.

ບາງວິທີການແມ່ນໃຊ້ໄດ້ທົ່ວໄປສຳລັບເອກະສານທຸກປະເພດ ແລະ ຖືກສືບທອດມາຈາກໂມດູນ SF_Document, ໃນຂະນະທີ່ວິທີການອື່ນໆທີ່ສະເພາະສຳລັບເອກະສານ Writer ແມ່ນຖືກກຳນົດໄວ້ໃນໂມດູນ SF_Writer.

## ການຮຽກໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ Writer, ໄລບຣາຣີ ScriptForge ຕ້ອງຖືກໂຫຼດ ຫຼື ນຳເຂົ້າກ່ອນ:

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService

ບໍລິການ Writer ມີຄວາມກ່ຽວຂ້ອງຢ່າງໃກ້ຊິດກັບບໍລິການ UI ຂອງໄລບຣາຣີ ScriptForge. ຂ້າງລຸ່ມນີ້ແມ່ນບາງຕົວຢ່າງຂອງວິທີການຮຽກໃຊ້ບໍລິການ Writer.

##### ໃນ Basic

ສ່ວນຂອງໂຄ້ດຂ້າງລຸ່ມນີ້ຈະສ້າງອິນສະແຕນຊ໌ບໍລິການ Writer ທີ່ກົງກັບເອກະສານ Writer ທີ່ກຳລັງເຮັດວຽກຢູ່ໃນປັດຈຸບັນ.

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1") ' Default = ActiveWindow

ອີກວິທີໜຶ່ງໃນການສ້າງອິນສະແຕນຊ໌ຂອງບໍລິການ Writer ແມ່ນການໃຊ້ບໍລິການ UI. ໃນຕົວຢ່າງຕໍ່ໄປນີ້, ເອກະສານ Writer ໃໝ່ຈະຖືກສ້າງຂຶ້ນ ແລະ oDoc ຈະເປັນອິນສະແຕນຊ໌ບໍລິການ Writer:

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.CreateDocument("Writer")

ຫຼື ໃຊ້ວິທີການ OpenDocument ຈາກບໍລິການ UI:

        Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")

ນອກຈາກນັ້ນ ຍັງສາມາດສ້າງອິນສະແຕນຊ໌ບໍລິການ Writer ໂດຍໃຊ້ວິທີການ CreateScriptService ໄດ້ຄືກັນ:

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")

ໃນຕົວຢ່າງຂ້າງເທິງ, "MyFile.odt" ແມ່ນຊື່ຂອງປ່ອງຢ້ຽມເອກະສານທີ່ເປີດຢູ່. ຖ້າບໍ່ມີການລະບຸອາຄິວເມນນີ້, ຈະຖືເອົາປ່ອງຢ້ຽມທີ່ກຳລັງເຮັດວຽກຢູ່.

ແນະນຳໃຫ້ຄືນຊັບພະຍາກອນ (free resources) ຫຼັງຈາກການໃຊ້ງານ:

        Set oDoc = oDoc.Dispose()

ແນວໃດກໍຕາມ, ຖ້າເອກະສານຖືກປິດໂດຍໃຊ້ວິທີການ CloseDocument, ມັນກໍບໍ່ຈຳເປັນທີ່ຈະຕ້ອງຄືນຊັບພະຍາກອນດ້ວຍຄຳສັ່ງທີ່ກ່າວມາຂ້າງເທິງນັ້ນ.

##### ໃນ Python

        myDoc = CreateScriptService("Writer") ' Default = ActiveWindow

        ui = CreateScriptService("UI")
        myDoc = ui.CreateDocument("Writer")

        myDoc = ui.OpenDocument(r"C:\Documents\MyFile.odt")

        myDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")
        myDoc.Dispose()

ການໃຊ້ຄຳນຳໜ້າ "SFDocuments." ໃນຂະນະທີ່ຮຽກໃຊ້ບໍລິການແມ່ນຈະໃສ່ ຫຼື ບໍ່ກໍໄດ້.

## ຄຳນິຍາມ

## ຄຸນສົມບັດ

## ວິທີການ

ລາຍການວິທີການໃນບໍລິການ Writer
Forms | ImportStylesFromFile | PrintOut

## Forms

ຂຶ້ນຢູ່ກັບພາລາມິເຕີທີ່ລະບຸ, ວິທີການນີ້ຈະສົ່ງຄືນ:

- ອາເຣທີ່ເລີ່ມຕົ້ນດ້ວຍສູນ (ຫຼື tuple ໃນ Python) ທີ່ບັນຈຸຊື່ຂອງຟອມທັງໝົດທີ່ມີຢູ່ໃນເອກະສານ (ຖ້າບໍ່ມີອາຄິວເມນ form)

- ອິນສະແຕນຊ໌ບໍລິການ SFDocuments.Form ທີ່ສະແດງເຖິງຟອມທີ່ລະບຸໃນອາຄິວເມນ.

ວິທີການນີ້ໃຊ້ໄດ້ສະເພາະກັບເອກະສານ Writer ເທົ່ານັ້ນ. ເອກະສານ Calc ແລະ Base ຈະມີວິທີການ Forms ຂອງຕົນເອງໃນບໍລິການ Calc ແລະ Base ຕາມລຳດັບ.

### ໄວຍາກອນ:

svc.Forms(): str[0..*]

svc.Forms(form: str = ''): svc

svc.Forms(form: int): svc

### ພາຣາມິເຕີ:

form: ຊື່ ຫຼື ລຳດັບທີ່ກົງກັບຟອມທີ່ເກັບໄວ້ໃນເອກະສານ. ຖ້າບໍ່ມີອາຄິວເມນນີ້, ວິທີການຈະສົ່ງຄືນລາຍການຊື່ຂອງຟອມທັງໝົດທີ່ມີຢູ່ໃນເອກະສານ.

### ຕົວຢ່າງ:

ໃນຕົວຢ່າງຕໍ່ໄປນີ້, ແຖວທຳອິດຈະດຶງເອົາຊື່ຂອງຟອມທັງໝົດໃນເອກະສານ ແລະ ແຖວທີສອງຈະດຶງເອົາອັອບເຈັກ Form ຂອງຟອມທີ່ຊື່ວ່າ "Form_A".

##### ໃນ Basic

        Set FormNames = oDoc.Forms()
        Set FormA = oDoc.Forms("Form_A")

##### ໃນ Python

        form_names = doc.Forms()
        form_A = doc.Forms("Form_A")

## ImportStylesFromFile

ວິທີການນີ້ຈະໂຫຼດທຸກຮູບແບບ (styles) ທີ່ຢູ່ໃນຕະກຸນຮູບແບບໜຶ່ງ ຫຼື ຫຼາຍຕະກຸນ ຈາກໄຟລ໌ທີ່ປິດຢູ່ ເຂົ້າສູ່ເອກະສານປັດຈຸບັນ. ເອກະສານປັດຈຸບັນຕ້ອງເປັນເອກະສານ Calc ຫຼື Writer.

ຈະຖືກນຳເຂົ້າພ້ອມກັນສະເໝີ:

- ParagraphStyles ແລະ CharacterStyles

- NumberingStyles ແລະ ListStyles

ສົ່ງຄືນ True ຖ້ານຳເຂົ້າຮູບແບບສຳເລັດ.

### ໄວຍາກອນ:

svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool

### ພາຣາມິເຕີ:

filename: ໄຟລ໌ທີ່ຈະໂຫຼດຮູບແບບ ໂດຍໃຊ້ຮູບແບບການຂຽນຂອງ FileSystem. ໄຟລ໌ດັ່ງກ່າວຄວນຈະເປັນປະເພດເອກະສານດຽວກັນກັບເອກະສານປັດຈຸບັນ.

families: ໜຶ່ງໃນຕະກຸນຮູບແບບທີ່ມີຢູ່ໃນເອກະສານປັດຈຸບັນ, ໂດຍລະບຸເປັນຂໍ້ຄວາມ (ຕົວອັກສອນໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນ) ຫຼື ອາເຣຂອງຂໍ້ຄວາມ. ປະອາຄິວເມນນີ້ໃຫ້ຫວ່າງໄວ້ເພື່ອໂຫຼດທຸກຕະກຸນ.

overwrite: ເມື່ອເປັນ True, ຮູບແບບທີ່ມີຢູ່ອາດຈະຖືກຂຽນທັບ. ຄ່າເລີ່ມຕົ້ນແມ່ນ False.

### ຕົວຢ່າງ:

##### ໃນ Basic

        oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)

##### ໃນ Python

        doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)

## PrintOut

ສົ່ງເນື້ອໃນຂອງເອກະສານໄປຍັງເຄື່ອງພິມ. ເຄື່ອງພິມອາດຈະຖືກກຳນົດໄວ້ກ່ອນແລ້ວໂດຍຄ່າເລີ່ມຕົ້ນ, ໂດຍຜູ້ໃຊ້ ຫຼື ໂດຍວິທີການ SetPrinter ຂອງບໍລິການ Document. ສົ່ງຄືນ True ເມື່ອສຳເລັດ.

### ໄວຍາກອນ:

svc.PrintOut(opt pages: str = "", opt copies: num = 1, opt printbackground: bool = True, opt printblankpages: bool = False, opt printevenpages: bool = True, opt printoddpages: bool = True, opt printimages: bool = True): bool

### ພາຣາມິເຕີ:

pages: ໜ້າທີ່ຈະພິມ ໂດຍລະບຸເປັນຂໍ້ຄວາມ ຄືກັນກັບໃນສ່ວນຕິດຕໍ່ຜູ້ໃຊ້. ຕົວຢ່າງ: "1-4;10;15-18". ຄ່າເລີ່ມຕົ້ນ = ທຸກໜ້າ

copies: ຈຳນວນສຳເນົາ, ຄ່າເລີ່ມຕົ້ນແມ່ນ 1.

printbackground: ພິມຮູບພື້ນຫຼັງ ເມື່ອເປັນ True (ຄ່າເລີ່ມຕົ້ນ).

printblankpages: ເມື່ອເປັນ False (ຄ່າເລີ່ມຕົ້ນ), ຈະຂ້າມໜ້າຫວ່າງ.

printevenpages: ພິມໜ້າຄູ່ ເມື່ອເປັນ True (ຄ່າເລີ່ມຕົ້ນ).

printoddpages: ພິມໜ້າຄີກ ເມື່ອເປັນ True (ຄ່າເລີ່ມຕົ້ນ).

printimages: ພິມອັອບເຈັກຮູບພາບ ເມື່ອເປັນ True (ຄ່າເລີ່ມຕົ້ນ).

### ຕົວຢ່າງ:

##### ໃນ Basic

          oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)

##### ໃນ Python

        doc.PrintOut(printblankpages = True, copies = 3)

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ບໍລິການ SFDocuments.Document

ບໍລິການ ScriptForge.UI

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!