ເນື້ອໃນ

# ບໍລິການ SFDocuments.Document

ຫ້ອງສະໝຸດ SFDocuments ໃຫ້ວິທີການ ແລະ ຄຸນສົມບັດຕ່າງໆເພື່ອອຳນວຍຄວາມສະດວກໃນການຈັດການ ແລະ ຈັດການເອກະສານຂອງ LibreOfficeDev.

ວິທີການທີ່ໃຊ້ໄດ້ກັບເອກະສານທຸກປະເພດ (ເອກະສານຂໍ້ຄວາມ, ສະເປຣດຊີດ, ງານນຳສະເໜີ ແລະ ອື່ນໆ) ແມ່ນມີໃຫ້ໂດຍບໍລິການ SFDocuments.Document. ຕົວຢ່າງບາງອັນແມ່ນ:

- ການເປີດ, ປິດ ແລະ ບັນທຶກເອກະສານ

- ການເຂົ້າເຖິງຄຸນສົມບັດມາດຕະຖານ ຫຼື ຄຸນສົມບັດທີ່ກຳນົດເອງຂອງເອກະສານ

ຄຸນສົມບັດ, ວິທີການ ຫຼື ອາຄິວເມັນທີ່ໝາຍດ້ວຍ (*) ແມ່ນ ບໍ່ສາມາດໃຊ້ໄດ້ກັບເອກະສານ Base.

ວິທີການ ແລະ ຄຸນສົມບັດທີ່ສະເພາະເຈາະຈົງກັບສ່ວນປະກອບບາງຢ່າງຂອງ LibreOfficeDev ແມ່ນຖືກເກັບໄວ້ໃນບໍລິການແຍກຕ່າງຫາກ ເຊັ່ນ SFDocuments.SF_Calc ແລະ SFDocuments.SF_Base.

ເຖິງແມ່ນວ່າພາສາ Basic ຈະບໍ່ມີການສືບທອດ (inheritance) ລະຫວ່າງຄລາດວັດຖຸ, ແຕ່ບໍລິການຫຼັງໆເຫຼົ່ານີ້ອາດຖືວ່າເປັນຄລາດຍ່ອຍ (subclasses) ຂອງບໍລິການ SFDocuments.Document. ຄລາດຍ່ອຍເຫຼົ່ານັ້ນສາມາດເອີ້ນໃຊ້ຄຸນສົມບັດ ແລະ ວິທີການທີ່ອະທິບາຍໄວ້ລຸ່ມນີ້ໄດ້.

## ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ Document, ຫ້ອງສະໝຸດ ScriptForge ຈຳເປັນຕ້ອງໄດ້ຮັບການໂຫຼດ ຫຼື ນຳເຂົ້າ:

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

ລຸ່ມນີ້ແມ່ນສາມຮູບແບບຂອງວິທີການເອີ້ນໃຊ້ບໍລິການ Document.

##### ໃນ Basic

ການໃຊ້ວິທີການ getDocument ຈາກບໍລິການ ScriptForge.UI:

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.GetDocument("Untitled 1")

ຫຼື ທ່ານສາມາດໃຊ້ວິທີການ CreateDocument ແລະ OpenDocument ຈາກບໍລິການ UI ໄດ້.

        Set oDocA = ui.CreateDocument("Calc")
        Set oDocB = ui.OpenDocument("C:\Documents\MyFile.odt")

ການໃຊ້ຊື່ໜ້າຕ່າງຫາກເອກະສານເປີດຢູ່ແລ້ວ.

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

ການໃຊ້ເອກະສານທີ່ອ້າງອີງໂດຍ ThisComponent. ວິທີນີ້ມີປະໂຫຍດເປັນພິເສດເມື່ອຣັນມາໂຄຣຈາກພາຍໃນ Basic IDE.

        Dim oDoc As Object
        Set oDoc = CreateScriptService("Document", ThisComponent)

ຈາກມາໂຄຣທີ່ຖືກກະຕຸ້ນໂດຍເຫດການຂອງເອກະສານ.

        Sub RunEvent(ByRef poEvent As Object)
            Dim oDoc As Object
            Set oDoc = CreateScriptService("SFDocuments.DocumentEvent", poEvent)
            ' (...)
        End Sub

ບໍລິການ Document ມີຄວາມກ່ຽວຂ້ອງກັນຢ່າງໃກ້ຊິດກັບບໍລິການ UI ແລະ FileSystem.

ແນະນຳໃຫ້ຄືນຊັບພະຍາກອນຫຼັງການໃຊ້ງານ, ຍົກເວັ້ນເມື່ອເອກະສານຖືກປິດໂດຍໂປຣແກຣມດ້ວຍວິທີການ CloseDocument (ຊຶ່ງຕອນນັ້ນມັນຈະບໍ່ຈຳເປັນແລ້ວ):

        Set oDoc = oDoc.Dispose()

##### ໃນ Python

        from scriptforge import CreateScriptService
        ui = CreateScriptService("UI")
        doc = ui.GetDocument("Untitled 1")
        # (...)
        doc.Dispose()

        docA = ui.CreateDocument("Calc")
        docB = ui.OpenDocument("C:\Documents\MyFile.odt")

        doc = CreateScriptService("SFDocuments.Document", "Untitled 1")

        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)

        def RunEvent(event)
            doc = CreateScriptService("SFDocuments.DocumentEvent", Event)
            # (...)

ການໃຊ້ຄຳນຳໜ້າ "SFDocuments." ໃນຂະນະທີ່ເອີ້ນໃຊ້ບໍລິການນັ້ນແມ່ນສາມາດເລືອກໄດ້.

## ຄຸນສົມບັດ

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ຄຳອະທິບາຍ
--- | --- | --- | ---
CustomProperties (*) | ບໍ່ | Dictionary service | ສົ່ງຄືນອິນສະແຕນຊ໌ຂອງວັດຖຸ ScriptForge.Dictionary. ຫຼັງຈາກອັບເດດ, ສາມາດສົ່ງຄືນຄຸນສົມບັດເພື່ອອັບເດດເອກະສານໄດ້. ລາຍການແຕ່ລະອັນໃນດິກຊັນນາຣີອາດເປັນຂໍ້ຄວາມ, ຕົວເລກ, ວັນທີ (Basic) ຫຼື ລາຍການ com.sun.star.util.Duration.
Description (*) | ບໍ່ | String | ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດ Description (ຄຳອະທິບາຍ) ຂອງເອກະສານ (ຫຼື ເອີ້ນວ່າ "ຄຳຄິດເຫັນ")
DocumentProperties (*) | ແມ່ນ | Dictionary service | ສົ່ງຄືນວັດຖຸ ScriptForge.Dictionary ທີ່ບັນຈຸລາຍການທັງໝົດ. ລວມເຖິງສະຖິຕິຂອງເອກະສານ. ໝາຍເຫດວ່າສະຖິຕິເຫຼົ່ານີ້ຈະສະເພາະເຈາະຈົງກັບປະເພດເອກະສານ. ຕົວຢ່າງ: ເອກະສານ Calc ຈະມີລາຍການ "CellCount", ໃນຂະນະທີ່ເອກະສານອື່ນໆບໍ່ມີ.
DocumentType | ແມ່ນ | String | ຄ່າຂໍ້ຄວາມທີ່ລະບຸປະເພດເອກະສານ ("Base", "Calc", "Writer" ແລະ ອື່ນໆ)
ExportFilters (*) | ແມ່ນ | String array | ສົ່ງຄືນລາຍການຊື່ຕົວຕອງການສົ່ງອອກ (export filter) ທີ່ໃຊ້ໄດ້ກັບເອກະສານປັດຈຸບັນ ໃນຮູບແບບອາເຣຂອງຂໍ້ຄວາມ. ຕົວຕອງທີ່ໃຊ້ໄດ້ທັງການນຳເຂົ້າ/ສົ່ງອອກກໍຈະຖືກສົ່ງຄືນເຊັ່ນກັນ.
FileSystem | ແມ່ນ | String | ສົ່ງຄືນຂໍ້ຄວາມພ້ອມເສັ້ນທາງ URL ໄປຫາຮາກ (root) ຂອງລະບົບໄຟລ໌ສະເມືອນຂອງເອກະສານ. ໃຊ້ບໍລິການ FileSystem ເພື່ອເບິ່ງເນື້ອໃນ, ລວມເຖິງການສ້າງ, ເປີດ ແລະ ອ່ານໄຟລ໌ທີ່ເກັບໄວ້ໃນນັ້ນ. ເບິ່ງ ໜ້າການຊ່ວຍເຫຼືອນີ້ ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບວິທີເຂົ້າເຖິງ ແລະ ຈັດການໂຟນເດີ ແລະ ໄຟລ໌ໃນລະບົບໄຟລ໌ສະເມືອນຂອງໄຟລ໌ LibreOfficeDev.
ImportFilters (*) | ແມ່ນ | String array | ສົ່ງຄືນລາຍການຊື່ຕົວຕອງການນຳເຂົ້າ (import filter) ທີ່ໃຊ້ໄດ້ກັບເອກະສານປັດຈຸບັນ ໃນຮູບແບບອາເຣຂອງຂໍ້ຄວາມ. ຕົວຕອງທີ່ໃຊ້ໄດ້ທັງການນຳເຂົ້າ/ສົ່ງອອກກໍຈະຖືກສົ່ງຄືນເຊັ່ນກັນ.
IsAlive | ແມ່ນ | Boolean | True ເມື່ອເອກະສານຍັງບໍ່ທັນຖືກປິດ (ເຊັ່ນ: ໂດຍການກະທຳຂອງຜູ້ໃຊ້).
IsBase IsCalc IsDraw IsFormDocument IsImpress IsMath IsWriter | ແມ່ນ | Boolean | ຈະມີພຽງແຕ່ຄຸນສົມບັດດຽວເທົ່ານັ້ນທີ່ເປັນ True ສຳລັບເອກະສານທີ່ກຳນົດໃຫ້.
Keywords (*) | ບໍ່ | String | ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດ Keywords (ຄຳສຳຄັນ) ຂອງເອກະສານ. ສະແດງເປັນລາຍການຄຳສຳຄັນທີ່ຂັ້ນດ້ວຍຈຸດ
MenuHeaders | ແມ່ນ | String array | ສົ່ງຄືນລາຍການຊື່ເມນູທີ່ມີຢູ່ໃນແຖບເມນູ.
Readonly (*) | ແມ່ນ | Boolean | True ຫາກເອກະສານຢູ່ໃນໂໝດອ່ານຢ່າງດຽວ
StyleFamilies (*) | ແມ່ນ | String array | ລາຍການຕະກູນຮູບແບບ (style families) ທີ່ມີຢູ່. ໃຊ້ໄດ້ກັບເອກະສານທຸກປະເພດຍົກເວັ້ນ Base.
Subject (*) | ບໍ່ | String | ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດ Subject (ຫົວຂໍ້) ຂອງເອກະສານ.
Title (*) | ບໍ່ | String | ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດ Title (ຊື່ເລື່ອງ) ຂອງເອກະສານ.
XComponent | ແມ່ນ | ວັດຖຸ UNO | ວັດຖຸ UNO com.sun.star.lang.XComponent ຫຼື com.sun.star.comp.dba.ODatabaseDocument ທີ່ແທນເອກະສານ.
XDocumentSettings (*) | ແມ່ນ | ວັດຖຸ UNO | ວັດຖຸ UNO com.sun.star.XXX.DocumentSettings, ໂດຍທີ່ XXX ອາດເປັນ sheet, text, drawing ຫຼື presentation. ວັດຖຸນີ້ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດ UNO ພາຍໃນທີ່ສະເພາະເຈາະຈົງກັບປະເພດຂອງເອກະສານ.

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງລຸ່ມນີ້ຈະພິມຄຸນສົມບັດທັງໝົດຂອງເອກະສານ. ໝາຍເຫດວ່າວັດຖຸ oDoc ທີ່ສົ່ງຄືນໂດຍວິທີການ UI.OpenDocument ແມ່ນວັດຖຸ SFDocuments.Document.

        Dim ui as Variant : Set ui = CreateScriptService("UI")
        Dim oDoc as Object
        Set oDoc = ui.OpenDocument("C:\Documents\MyFile.ods")
        Dim propDict as Object
        Set propDict = oDoc.DocumentProperties
        Dim keys as Variant : propKeys = propDict.Keys
        Dim k as String, strProp as String
        For Each k In propKeys
            strProp = strProp & k & ": " & propDict.Item(k) & CHR$(10)
        Next k
        MsgBox strProp
        oDoc.CloseDocument()

##### ໃນ Python

ເພື່ອເຂົ້າເຖິງຄຸນສົມບັດຂອງເອກະສານໃນສະຄຣິບ Python, ຜູ້ໃຊ້ຈຳເປັນຕ້ອງເຂົ້າເຖິງພວກມັນໂດຍກົງໂດຍໃຊ້ຊື່ຂອງພວກມັນ, ດັ່ງທີ່ສະແດງລຸ່ມນີ້:

        doc = ui.GetDocument(r"C:\Documents\MyFile.ods")
        msg = doc.Title + '\n' + doc.Description + '\n' + doc.Keywords
        bas = CreateScriptService("Basic")
        bas.MsgBox(msg)
        doc.CloseDocument()

ລາຍການວິທີການໃນບໍລິການ Document
Activate CloseDocument ContextMenus CreateMenu DeleteStyles Echo | ExportAsPDF PrintOut RemoveMenu RunCommand Save SaveAs | SaveCopyAs SetPrinter Style Toolbars XStyle

## Activate

ສົ່ງຄືນ True ຫາກເອກະສານສາມາດຖືກເປີດໃຊ້ງານ (activate) ໄດ້. ບໍ່ດັ່ງນັ້ນ, ຈະບໍ່ມີການປ່ຽນແປງໃນສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ຕົວຈິງ. ມັນທຽບເທົ່າກັບວິທີການ Activate ຂອງບໍລິການ UI.

ວິທີການນີ້ມີປະໂຫຍດເມື່ອຕ້ອງການໃຫ້ໂຟກັສກັບເອກະສານທີ່ຖືກຫຍໍ້ລົງ (minimized) ຫຼື ຖືກເຊື່ອງໄວ້.

### ໄວຍາກອນ:

svc.Activate(): bool

### ຕົວຢ່າງ:

ຕົວຢ່າງລຸ່ມນີ້ພິຈາລະນາວ່າໄຟລ໌ "My_File.ods" ເປີດຢູ່ແລ້ວແຕ່ບໍ່ໄດ້ຖືກເປີດໃຊ້ງານ.

##### ໃນ Basic

        Dim oDoc As Object
        Set oDoc = CreateScriptService("Document", "MyFile.ods")
        oDoc.Activate()

##### ໃນ Python

        doc = CreateScriptService("Document", "MyFile.ods")
        doc.Activate()

ຈົ່ງຈື່ໄວ້ວ່າທ່ານສາມາດເອີ້ນໃຊ້ບໍລິການ Document ໂດຍການສົ່ງຄ່າ "Document" ຫຼື "SFDocuments.Document" ໄປຫາ CreateScriptService ກໍໄດ້

## CloseDocument

ປິດເອກະສານ. ຫາກເອກະສານຖືກປິດຢູ່ແລ້ວ, ບໍ່ວ່າເອກະສານຈະຖືກປິດດ້ວຍວິທີໃດກໍຕາມ, ວິທີການນີ້ຈະບໍ່ມີຜົນຫຍັງ ແລະ ສົ່ງຄືນ False.

ວິທີການນີ້ຈະສົ່ງຄືນ False ເຊັ່ນກັນ ຫາກຜູ້ໃຊ້ປະຕິເສດທີ່ຈະປິດມັນ.

ສົ່ງຄືນ True ຫາກເອກະສານຖືກປິດສຳເລັດ.

### ໄວຍາກອນ:

svc.CloseDocument(saveask: bool = True): bool

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

saveask : ຫາກເປັນ True (ຄ່າເລີ່ມຕົ້ນ), ຜູ້ໃຊ້ຈະຖືກຖາມເພື່ອຢືນຢັນວ່າຄວນບັນທຶກການປ່ຽນແປງລົງໃນດິສກ໌ຫຼືບໍ່. ອາຄິວເມັນນີ້ຈະຖືກລະເລີຍຫາກເອກະສານບໍ່ມີການແກ້ໄຂ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        If oDoc.CloseDocument(True) Then
            ' ...
        End If

##### ໃນ Python

        if doc.CloseDocument(True):
            # ...

## ContextMenus

ວິທີການນີ້ສົ່ງຄືນທັງລາຍການເມນູລັດ (context menus) ທີ່ມີຢູ່ໃນເອກະສານຕົວຈິງ ຫຼື ອິນສະແຕນຊ໌ຂອງບໍລິການ SFWidgets.ContextMenu.

### ໄວຍາກອນ:

svc.ContextMenus(opt contextmenuname: str, submenuchar: str = ">"): svc
svc.ContextMenus(): str[0..]

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

contextmenuname: ໜຶ່ງໃນເມນູລັດທີ່ມີຢູ່. ຊື່ຂອງເມນູລັດແມ່ນສ່ວນປະກອບສຸດທ້າຍຂອງ URL ຊັບພະຍາກອນ: "private:resource/popupmenu/the-name-here".

submenuchar: ຕົວຂັ້ນທີ່ໃຊ້ເພື່ອສ້າງໂຄງສ້າງເມນູ (menu trees) ເມື່ອເອີ້ນໃຊ້ວິທີການ ເຊັ່ນ AddItem ຈາກບໍລິການ ContextMenu. ຄ່າເລີ່ມຕົ້ນແມ່ນ ">".

### ຕົວຢ່າງ:

##### ໃນ Basic

                Dim oContextMenu As Object
                Set oContextMenu = oDoc.ContextMenus("cell")

##### ໃນ Python

                a_list = doc.ContextMenus()

## CreateMenu

ສ້າງລາຍການເມນູໃໝ່ໃນແຖບເມນູຂອງໜ້າຕ່າງເອກະສານທີ່ກຳນົດໃຫ້.

ວິທີການນີ້ສົ່ງຄືນອິນສະແຕນຊ໌ຂອງບໍລິການ SFWidgets.Menu.

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

### ໄວຍາກອນ:

svc.CreateMenu(menuheader: str, [before: any], submenuchar: str = ">"): svc

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

menuheader: ຊື່ລະດັບເທິງສຸດຂອງເມນູໃໝ່.

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

submenuchar: ຕົວຂັ້ນທີ່ໃຊ້ເພື່ອສ້າງໂຄງສ້າງເມນູເມື່ອເອີ້ນໃຊ້ວິທີການ ເຊັ່ນ AddItem ຈາກບໍລິການ Menu. ຄ່າເລີ່ມຕົ້ນແມ່ນ ">".

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim oDoc as Object, oMenu as Object
        Set oDoc = CreateScriptService("Document")
        Set oMenu = oDoc.CreateMenu("My Menu")
        With oMenu
            ' ເພີ່ມລາຍການເຂົ້າໃນເມນູ
            .AddItem("Item A")
            .AddItem("Item B")
            ' ...
            ' ຫຼັງຈາກສ້າງເມນູແລ້ວ, ອິນສະແຕນຊ໌ຂອງບໍລິການສາມາດຖືກຍົກເລີກໄດ້
            .Dispose()
        End With

##### ໃນ Python

        doc = CreateScriptService("Document")
        menu = doc.CreateMenu("My Menu")
        menu.AddItem("Item A")
        menu.AddItem("Item B")
        # ...
        menu.Dispose()

ເບິ່ງໜ້າການຊ່ວຍເຫຼືອ SFWidgets.Menu ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບວິທີການສ້າງ/ລຶບເມນູໃນໜ້າຕ່າງເອກະສານ LibreOfficeDev.

## DeleteStyles

ລຶບຮູບແບບດ່ຽວ ຫຼື ອາເຣຂອງຮູບແບບຕາມຊື່ທີ່ລະບຸພາຍໃນຕະກູນຮູບແບບ (styles family) ໃດໜຶ່ງ. ສາມາດລຶບໄດ້ສະເພາະຮູບແບບທີ່ຜູ້ໃຊ້ກຳນົດເອງເທົ່ານັ້ນ, ຮູບແບບທີ່ມີມາໃນຕົວຈະຖືກລະເລີຍ. ໃຊ້ໄດ້ກັບເອກະສານທຸກປະເພດຍົກເວັ້ນ Base ແລະ FormDocument.

### ໄວຍາກອນ:

svc.DeleteStyles(family: str, styleslist: str[1..*])

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

family: ໜຶ່ງໃນຕະກູນຮູບແບບທີ່ມີຢູ່ໃນເອກະສານຕົວຈິງ, ເປັນຂໍ້ຄວາມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່. ສາມາດດຶງຊື່ຕະກູນທີ່ໃຊ້ໄດ້ມາໂດຍໃຊ້ຄຸນສົມບັດ StyleFamilies.

styleslist: ຊື່ຮູບແບບດ່ຽວເປັນຂໍ້ຄວາມ ຫຼື ອາເຣຂອງຊື່ຮູບແບບ. ຊື່ຮູບແບບອາດເປັນພາສາທ້ອງຖິ່ນ ຫຼື ບໍ່ກໍໄດ້. ໂດຍທົ່ວໄປແລ້ວ StylesList ແມ່ນຜົນໄດ້ຮັບຈາກການຣັນວິທີການ Styles().

### ຕົວຢ່າງ:

##### ໃນ Basic

        ' ລຶບຮູບແບບຫຍໍ້ໜ້າທີ່ບໍ່ໄດ້ໃຊ້ງານ
        Const family = "ParagraphStyles"
        aList = oDoc.Styles(family, used := False, userDefined := True)
        oDoc.DeleteStyles(family, aList)

##### ໃນ Python

        # ລຶບຮູບແບບຕາມຄຳນຳໜ້າ (prefix)
        a_list = doc.Styles('ParagraphStyles', namepattern = "Py*")
        doc.Styles('ParagraphStyles', a_list)

## Echo

ລະງັບການອັບເດດສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ (UI) ໃນລະຫວ່າງການຣັນມາໂຄຣ. ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດປ່ຽນຕົວຊີ້ເມົາສ໌ໃຫ້ເປັນຮູບໂມງຊາຍ (hourglass) ໃນຂະນະທີ່ການອັບເດດ UI ຖືກລະງັບໄວ້ໄດ້.

ວິທີການນີ້ອາດຊ່ວຍເພີ່ມປະສິດທິພາບໃຫ້ກັບມາໂຄຣທີ່ມີການເຮັດວຽກຫຼາຍຢ່າງເຊິ່ງຕ້ອງມີການອັບເດດ UI.

### ໄວຍາກອນ:

svc.Echo(echoon: bool = True, hourglass: bool = False)

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

echoon: ລະບຸ False ເພື່ອລະງັບການອັບເດດ UI. ຄ່າເລີ່ມຕົ້ນແມ່ນ True, ເຊິ່ງຈະເປີດການອັບເດດ UI ແບບຮຽລໄທມ໌.

hourglass: ລະບຸ True ເພື່ອປ່ຽນຕົວຊີ້ເມົາສ໌ໃຫ້ເປັນຮູບໂມງຊາຍ (ຄ່າເລີ່ມຕົ້ນ = False).

ການເຄື່ອນຍ້າຍຕົວຊີ້ເມົາສ໌ຫຼັງຈາກມັນປ່ຽນເປັນຮູບໂມງຊາຍ ອາດເຮັດໃຫ້ມັນປ່ຽນເປັນຕົວຊີ້ແບບອື່ນໄດ້ ຂຶ້ນຢູ່ກັບພື້ນຫຼັງໃໝ່ຂອງມັນ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        ' ລະງັບການອັບເດດ UI ແລະ ປ່ຽນຕົວຊີ້ເມົາສ໌ໃຫ້ເປັນຮູບໂມງຊາຍ
        oDoc.Echo(EchoOn := False, HourGlass := True)
        ' ຄຳສັ່ງມາໂຄຣອື່ນໆ
        ' ...
        ' ກັບຄືນການອັບເດດ UI ແລະ ຕົວຊີ້ເມົາສ໌
        oDoc.Echo()

##### ໃນ Python

        doc.Echo(echoon = False, hourglass = True)
        ...
        doc.Echo()

## ExportAsPDF

ສົ່ງອອກເອກະສານເປັນໄຟລ໌ PDF ໂດຍກົງໄປຫາສະຖານທີ່ທີ່ລະບຸ. ສົ່ງຄືນ True ຫາກໄຟລ໌ PDF ຖືກສ້າງສຳເລັດ.

ຕົວເລືອກການສົ່ງອອກສາມາດຕັ້ງຄ່າໄດ້ດ້ວຍຕົນເອງໂດຍໃຊ້ໄດອາລັອກ File - Export As - Export as PDF ຫຼື ໂດຍການເອີ້ນໃຊ້ວິທີການ GetPDFExportOptions ແລະ SetPDFExportOptions ຈາກບໍລິການ Session.

### ໄວຍາກອນ:

svc.ExportAsPDF(filename: str, overwrite: bool = False, opt pages: str, opt password: str, opt watermark: str): bool

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

filename: ເສັ້ນທາງເຕັມ ແລະ ຊື່ໄຟລ໌ PDF ທີ່ຈະສ້າງ. ຕ້ອງເປັນໄປຕາມຮູບແບບ SF_FileSystem.FileNaming.

overwrite: ກຳນົດວ່າສາມາດຂຽນທັບໄຟລ໌ປາຍທາງໄດ້ຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False). ຈະເກີດຂໍ້ຜິດພາດຂຶ້ນຫາກ overwrite ຖືກຕັ້ງເປັນ False ແລະ ໄຟລ໌ປາຍທາງມີຢູ່ແລ້ວ.

pages: ຂໍ້ຄວາມທີ່ລະບຸວ່າຈະສົ່ງອອກໜ້າໃດແດ່. ອາຄິວເມັນນີ້ໃຊ້ຮູບແບບດຽວກັນກັບໃນໄດອາລັອກ File - Export As - Export as PDF.

password: ກຳນົດລະຫັດຜ່ານເພື່ອເປີດໄຟລ໌ PDF.

watermark: ຂໍ້ຄວາມທີ່ຈະໃຊ້ເປັນລາຍນ້ຳ (watermark) ໃນໄຟລ໌ PDF, ເຊິ່ງຈະປະກົດຢູ່ໃນທຸກໆໜ້າຂອງ PDF ທີ່ໄດ້.

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະສົ່ງອອກເອກະສານປັດຈຸບັນເປັນໄຟລ໌ PDF, ກຳນົດລະຫັດຜ່ານ ແລະ ຂຽນທັບໄຟລ໌ປາຍທາງຫາກມັນມີຢູ່ແລ້ວ.

        oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf", Password := "1234", Overwrite := True)

ໂຄ້ດຕົວຢ່າງລຸ່ມນີ້ຈະດຶງຕົວເລືອກການສົ່ງອອກ PDF ປັດຈຸບັນ ແລະ ໃຊ້ມັນເພື່ອສ້າງໄຟລ໌ PDF.

        Dim exportSettings as Object, oSession as Object
        oSession = CreateScriptService("Session")
        exportSettings = oSession.GetPDFExportOptions()
        ' ຕັ້ງຄ່າເປັນ True ສຳລັບຕົວເລືອກການສົ່ງອອກຄຳຄິດເຫັນເປັນບັນທຶກ PDF
        exportSettings.ReplaceItem("ExportNotes", True)
        oSession.SetPDFExportOptions(exportSettings)
        oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")

##### ໃນ Python

        doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf", password = "1234", overwrite = True)

        session = CreateScriptService("Session")
        exportSettings = oSession.GetPDFExportOptions()
        exportSettings.ReplaceItem("ExportNotes", True)
        session.SetPDFExportOptions(exportSettings)
        doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf")

## PrintOut

ວິທີການນີ້ຈະສົ່ງເນື້ອໃນຂອງເອກະສານໄປຫາເຄື່ອງພິມເລີ່ມຕົ້ນ ຫຼື ເຄື່ອງພິມທີ່ກຳນົດໂດຍວິທີການ SetPrinter.

ສົ່ງຄືນ True ຫາກເອກະສານຖືກພິມສຳເລັດ.

### ໄວຍາກອນ:

svc.PrintOut(pages: str = "", copies: num = 1): bool

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

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

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

### ຕົວຢ່າງ:

##### ໃນ Basic

        If oDoc.PrintOut("1-4;10;15-18", Copies := 2) Then
            ' ...
        End If

##### ໃນ Python

        if doc.PrintOut(copies=3, pages='45-88'):
            # ...

## RemoveMenu

ລຶບເມນູລະດັບເທິງສຸດອອກຈາກແຖບເມນູຂອງໜ້າຕ່າງເອກະສານທີ່ກຳນົດໃຫ້.

ສົ່ງຄືນ True ຫາກສາມາດລຶບເມນູທີ່ລະບຸໄດ້. ຫາກເມນູທີ່ລະບຸບໍ່ມີຢູ່, ວິທີການນີ້ຈະສົ່ງຄືນ False.

ວິທີການນີ້ສາມາດໃຊ້ເພື່ອລຶບລາຍການເມນູໃດກໍໄດ້ອອກຈາກໜ້າຕ່າງເອກະສານ, ລວມເຖິງເມນູເລີ່ມຕົ້ນ. ແນວໃດກໍຕາມ, ການປ່ຽນແປງເຫຼົ່ານີ້ໃນແຖບເມນູຈະບໍ່ຖືກບັນທຶກໄວ້ໃນເອກະສານ ຫຼື ໃນການຕັ້ງຄ່າແອັບພລິເຄຊັນ. ເພື່ອກັບຄືນສູ່ການຕັ້ງຄ່າແຖບເມນູເລີ່ມຕົ້ນ, ພຽງແຕ່ປິດ ແລະ ເປີດໜ້າຕ່າງເອກະສານຄືນໃໝ່.

### ໄວຍາກອນ:

svc.RemoveMenu(menuheader: str): bool

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

menuheader: ຊື່ລະດັບເທິງສຸດຂອງເມນູທີ່ຈະລຶບອອກ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim oDoc as Object
        Set oDoc = CreateScriptService("Document")
        oDoc.RemoveMenu("My Menu")

##### ໃນ Python

        doc = CreateScriptService("Document")
        doc.RemoveMenu("My Menu")

ເບິ່ງໜ້າການຊ່ວຍເຫຼືອ SFWidgets.Menu ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບວິທີການສ້າງ/ລຶບເມນູໃນໜ້າຕ່າງເອກະສານ LibreOfficeDev.

## RunCommand

ຣັນຄຳສັ່ງ UNO ໃນໜ້າຕ່າງເອກະສານທີ່ກ່ຽວຂ້ອງກັບອິນສະແຕນຊ໌ຂອງບໍລິການ. ຄຳສັ່ງທົ່ວໄປບາງອັນໄດ້ແກ່: Save, SaveAs, ExportToPDF, Undo, Copy, Paste ແລະ ອື່ນໆ.

ເອກະສານນັ້ນບໍ່ຈຳເປັນຕ້ອງຖືກເປີດໃຊ້ງານ (active) ກໍສາມາດຣັນຄຳສັ່ງໄດ້.

ຄຳສັ່ງສາມາດຣັນໄດ້ທັງແບບມີ ຫຼື ບໍ່ມີອາຄິວເມັນ. ອາຄິວເມັນຈະບໍ່ໄດ້ຮັບການກວດສອບຄວາມຖືກຕ້ອງກ່ອນຣັນຄຳສັ່ງ. ຫາກຄຳສັ່ງ ຫຼື ອາຄິວເມັນບໍ່ຖືກຕ້ອງ, ຈະບໍ່ມີຫຍັງເກີດຂຶ້ນ.

ສຳລັບລາຍການຄຳສັ່ງ UNO ທັງໝົດທີ່ສາມາດຣັນໄດ້ໃນ LibreOfficeDev, ເບິ່ງທີ່ໜ້າ Wiki Development/DispatchCommands.

### ໄວຍາກອນ:

svc.RunCommand(command: str, [args: any])

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

command: ຂໍ້ຄວາມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ ເຊິ່ງບັນຈຸຊື່ຄຳສັ່ງ UNO. ການລວມຄຳນຳໜ້າ ".uno:" ໃນຄຳສັ່ງແມ່ນສາມາດເລືອກໄດ້. ຄຳສັ່ງນັ້ນເອງຈະບໍ່ຖືກກວດສອບຄວາມຖືກຕ້ອງ. ຫາກບໍ່ມີຫຍັງເກີດຂຶ້ນຫຼັງຈາກເອີ້ນຄຳສັ່ງ, ສະແດງວ່າຄຳສັ່ງນັ້ນອາດຈະຜິດ.

args: ສຳລັບແຕ່ລະອາຄິວເມັນທີ່ຈະສົ່ງໃຫ້ກັບຄຳສັ່ງ, ໃຫ້ລະບຸເປັນຄູ່ທີ່ປະກອບດ້ວຍຊື່ ແລະ ຄ່າຂອງອາຄິວເມັນ.

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະຣັນຄຳສັ່ງ SelectData ໃນໄຟລ໌ Calc ຊື່ "MyFile.ods", ເຊິ່ງຈະເຮັດໃຫ້ມີການເລືອກພື້ນທີ່ຂໍ້ມູນຕາມເຊລທີ່ຖືກເລືອກໃນປັດຈຸບັນ. ໝາຍເຫດວ່າຄຳສັ່ງນີ້ບໍ່ຈຳເປັນຕ້ອງມີອາຄິວເມັນໃດໆ.

        Set oDoc = CreateScriptService("Document", "MyFile.ods")
        oDoc.RunCommand("SelectData")

ລຸ່ມນີ້ແມ່ນຕົວຢ່າງການຣັນຄຳສັ່ງ UNO ReplaceAll ແລະ ສົ່ງຄ່າສຳລັບອາຄິວເມັນ SearchString ແລະ ReplaceString. ການຣັນຄຳສັ່ງນີ້ຈະປ່ຽນແທນຄຳວ່າ "abc" ທັງໝົດດ້ວຍ "ABC" ໃນຊີດປັດຈຸບັນ.

        ' ອາຄິວເມັນທີ່ສົ່ງໃຫ້ກັບຄຳສັ່ງ:
        ' SearchString  = "abc"
        ' ReplaceString = "ABC"
        oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")

ໝາຍເຫດວ່າການເອີ້ນຄຳສັ່ງ ReplaceAll ໂດຍບໍ່ມີອາຄິວເມັນ ຈະເປັນການເປີດໄດອາລັອກ Find and Replace.

##### ໃນ Python

        doc = CreateScriptService("Document", "MyFile.ods")
        doc.RunCommand("SelectData")

        doc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")

ໃນ Python ທ່ານຍັງສາມາດເອີ້ນໃຊ້ RunCommand ໂດຍໃຊ້ keyword arguments ໄດ້ເຊັ່ນກັນ:

        doc.RunCommand(".uno:ReplaceAll", SearchString = "abc", ReplaceString = "ABC")

ແຕ່ລະສ່ວນປະກອບຂອງ LibreOfficeDev ຈະມີຊຸດຄຳສັ່ງຂອງມັນເອງ. ວິທີງ່າຍໆໃນການຮຽນຮູ້ຄຳສັ່ງຄືໄປທີ່ Tools - Customize - Keyboard. ເມື່ອທ່ານວາງເມົາສ໌ໄວ້ເທິງຟັງຊັນໃນລາຍການ Function, ຈະມີ tooltip ປະກົດຂຶ້ນມາພ້ອມກັບຄຳສັ່ງ UNO ທີ່ກົງກັນ.

## Save

ບັນທຶກເອກະສານໄວ້ໃນສະຖານທີ່ໄຟລ໌ທີ່ມັນຖືກໂຫຼດມາ. ວິທີການນີ້ຈະຖືກລະເລີຍຫາກເອກະສານບໍ່ມີການແກ້ໄຂ.

ສົ່ງຄືນ False ຫາກບໍ່ສາມາດບັນທຶກເອກະສານໄດ້. ຈະເກີດຂໍ້ຜິດພາດຂຶ້ນຫາກໄຟລ໌ຖືກເປີດເປັນແບບອ່ານຢ່າງດຽວ, ຫຼື ຫາກມັນເປັນໄຟລ໌ໃໝ່ທີ່ຍັງບໍ່ທັນໄດ້ຮັບການບັນທຶກເທື່ອ.

ເອກະສານນັ້ນບໍ່ຈຳເປັນຕ້ອງຖືກເປີດໃຊ້ງານກໍສາມາດຣັນວິທີການນີ້ໄດ້.

### ໄວຍາກອນ:

svc.Save(): bool

### ຕົວຢ່າງ:

##### ໃນ Basic

        If Not oDoc.Save() Then
            ' ...
        End If

##### ໃນ Python

        if not doc.Save():
            # ...

## SaveAs

ເກັບມ້ຽນເອກະສານໄວ້ໃນສະຖານທີ່ໄຟລ໌ທີ່ກຳນົດໃຫ້. ສະຖານທີ່ໃໝ່ຈະກາຍເປັນຊື່ໄຟລ໌ໃໝ່ ເຊິ່ງວິທີການ Save ແບບທຳມະດາຈະຖືກນຳໃຊ້.

ສົ່ງຄືນ False ຖ້າເອກະສານບໍ່ສາມາດບັນທຶກໄດ້. ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນເມື່ອການຂຽນທັບປາຍທາງຖືກປະຕິເສດ ຫຼື ເມື່ອປາຍທາງມີຄຸນລັກສະນະອ່ານໄດ້ຢ່າງດຽວຖືກຕັ້ງໄວ້.

ຕົວເອກະສານເອງບໍ່ຈຳເປັນຕ້ອງມີການເຄື່ອນໄຫວເພື່ອເອີ້ນໃຊ້ວິທີການນີ້.

### ໄວຍາກອນ:

svc.SaveAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

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

filename: ສາຍອັກຂະລະທີ່ມີຊື່ໄຟລ໌ທີ່ຈະນຳໃຊ້. ມັນຕ້ອງເປັນໄປຕາມຮູບແບບ SF_FileSystem.FileNaming.

overwrite: ຖ້າເປັນ True, ໄຟລ໌ປາຍທາງອາດຈະຖືກຂຽນທັບ (ຄ່າເລີ່ມຕົ້ນ = False).

password (*): ສາຍອັກຂະລະທີ່ບໍ່ມີຍະຫວ່າງເພື່ອປົກປ້ອງເອກະສານ.

filtername (*): ຊື່ຂອງຕົວຕອງທີ່ຄວນໃຊ້ສຳລັບການບັນທຶກເອກະສານ. ຖ້າສົ່ງຂໍ້ໂຕ້ແຍ້ງນີ້ໄປ, ຕົວຕອງດັ່ງກ່າວຕ້ອງມີຢູ່ແລ້ວ.

filteroptions (*): ສາຍອັກຂະລະທາງເລືອກຂອງຕົວເລືອກຕ່າງໆທີ່ກ່ຽວຂ້ອງກັບຕົວຕອງ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        oDoc.SaveAs("C:\Documents\NewCopy.odt", overwrite := True)

##### ໃນ Python

        doc.SaveAs(r"C:\Documents\NewCopy.odt", overwrite = True)

## SaveCopyAs

ເກັບມ້ຽນສຳເນົາ ຫຼື ສົ່ງອອກເອກະສານໄປຍັງສະຖານທີ່ໄຟລ໌ທີ່ກຳນົດໃຫ້. ສະຖານທີ່ຕົວຈິງຈະບໍ່ມີການປ່ຽນແປງ.

ສົ່ງຄືນ False ຖ້າເອກະສານບໍ່ສາມາດບັນທຶກໄດ້. ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນເມື່ອການຂຽນທັບປາຍທາງຖືກປະຕິເສດ ຫຼື ເມື່ອປາຍທາງມີຄຸນລັກສະນະອ່ານໄດ້ຢ່າງດຽວຖືກຕັ້ງໄວ້.

ຕົວເອກະສານເອງບໍ່ຈຳເປັນຕ້ອງມີການເຄື່ອນໄຫວເພື່ອເອີ້ນໃຊ້ວິທີການນີ້.

### ໄວຍາກອນ:

svc.SaveCopyAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

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

filename: ສາຍອັກຂະລະທີ່ມີຊື່ໄຟລ໌ທີ່ຈະນຳໃຊ້. ມັນຕ້ອງເປັນໄປຕາມຮູບແບບ SF_FileSystem.FileNaming.

overwrite: ຖ້າເປັນ True, ໄຟລ໌ປາຍທາງອາດຈະຖືກຂຽນທັບ (ຄ່າເລີ່ມຕົ້ນ = False).

password (*): ສາຍອັກຂະລະທີ່ບໍ່ມີຍະຫວ່າງເພື່ອປົກປ້ອງເອກະສານ.

filtername (*): ຊື່ຂອງຕົວຕອງທີ່ຄວນໃຊ້ສຳລັບການບັນທຶກເອກະສານ. ຖ້າສົ່ງຂໍ້ໂຕ້ແຍ້ງນີ້ໄປ, ຕົວຕອງດັ່ງກ່າວຕ້ອງມີຢູ່ແລ້ວ.

filteroptions (*): ສາຍອັກຂະລະທາງເລືອກຂອງຕົວເລືອກຕ່າງໆທີ່ກ່ຽວຂ້ອງກັບຕົວຕອງ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        oDoc.SaveCopyAs("C:\Documents\Copy2.odt", Overwrite := True)

##### ໃນ Python

        doc.SaveCopyAs(r"C:\Documents\Copy2.odt", overwrite = True)

## SetPrinter

ກຳນົດຕົວເລືອກເຄື່ອງພິມສຳລັບເອກະສານ.

ສົ່ງຄືນ True ເມື່ອສຳເລັດ.

### ໄວຍາກອນ:

svc.SetPrinter(opt printer: str, opt orientation: str, paperformat: str): bool

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

printer: ຊື່ຂອງຄິວເຄື່ອງພິມທີ່ຈະພິມອອກ. ເມື່ອບໍ່ມີການກຳນົດ, ເຄື່ອງພິມເລີ່ມຕົ້ນຈະຖືກຕັ້ງໄວ້.

orientation: ອາດຈະເປັນ PORTRAIT (ແນວຕັ້ງ) ຫຼື LANDSCAPE (ແນວນອນ). ເມື່ອບໍ່ມີການກຳນົດ, ຈະບໍ່ມີການປ່ຽນແປງໂດຍອີງຕາມການຕັ້ງຄ່າເຄື່ອງພິມ.

paperformat: ກຳນົດຮູບແບບເຈ້ຍເປັນຄ່າສາຍອັກຂະລະ ເຊິ່ງອາດຈະເປັນ A3, A4, A5, LETTER, LEGAL ຫຼື TABLOID. ຈະບໍ່ມີການປ່ຽນແປງເມື່ອບໍ່ມີການກຳນົດ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        oDoc.SetPrinter(Orientation := "PORTRAIT")

##### ໃນ Python

        doc.SetPrinter(paperformat='TABLOID')

## Styles

ຮີບໂຮມລາຍຊື່ຮູບແບບທີ່ກົງກັບເກນປະສົມທີ່ເປັນທາງເລືອກ, ອາເຣທີ່ສົ່ງຄືນມາອາດຈະຫວ່າງເປົ່າ. ມັນນຳໃຊ້ກັບທຸກປະເພດເອກະສານຍົກເວັ້ນ Base.

### ໄວຍາກອນ:

svc.Styles(family, opt namepattern: str, opt used: bool, opt userdefined: bool, opt parentstyle: str, opt category: str): str[0..*])

family: ໜຶ່ງໃນຕະກູນຮູບແບບທີ່ມີຢູ່ໃນເອກະສານຕົວຈິງ, ເປັນຂໍ້ຄວາມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່. ສາມາດດຶງຊື່ຕະກູນທີ່ໃຊ້ໄດ້ມາໂດຍໃຊ້ຄຸນສົມບັດ StyleFamilies.

category: ສາຍອັກຂະລະທີ່ບໍ່ຈຳແນກຕົວອັກສອນໃຫຍ່ນ້ອຍ: TEXT, CHAPTER, LIST, INDEX, EXTRA, HTML. ສຳລັບຄວາມໝາຍຂອງແຕ່ລະອັນ, ໃຫ້ເບິ່ງທີ່ເອກະສານ API ໝວດໝູ່ຮູບແບບຫຍໍ້ໜ້າ.

ຂໍ້ໂຕ້ແຍ້ງນີ້ຈະຖືກລະເລີຍເມື່ອ Family ແຕກຕ່າງຈາກ "ParagraphStyles".

namepattern: ຕົວຕອງສຳລັບຊື່ຮູບແບບ, ເປັນຮູບແບບສາຍອັກຂະລະທີ່ຈຳແນກຕົວອັກສອນໃຫຍ່ນ້ອຍ. ຊື່ລວມທັງຊື່ພາຍໃນ ແລະ ຊື່ທີ່ຖືກແປແລ້ວ.

ຕົວແທນ (wildcard) ທີ່ອະນຸຍາດຄື:

- "?" ແທນໃຫ້ຕົວອັກສອນດຽວໃດໜຶ່ງ.

- "*" ແທນໃຫ້ບໍ່ມີເລີຍ, ໜຶ່ງ ຫຼື ຫຼາຍຕົວອັກສອນ

parentstyle: ເມື່ອມີການກຳນົດ, ຈະເກັບໄວ້ສະເພາະລູກຂອງຊື່ຮູບແບບແມ່ທີ່ກຳນົດໃຫ້, ບໍ່ວ່າຈະຖືກແປຫຼືບໍ່ກໍຕາມ.

used: ເມື່ອເປັນ True, ຮູບແບບນັ້ນຕ້ອງຖືກນຳໃຊ້ໃນເອກະສານ, ເມື່ອບໍ່ມີການກຳນົດຂໍ້ໂຕ້ແຍ້ງນີ້ຈະຖືກລະເລີຍ.

userdefined: ເມື່ອເປັນ True, ຮູບແບບນັ້ນຕ້ອງແມ່ນຜູ້ໃຊ້ເປັນຜູ້ເພີ່ມເຂົ້າ, ບໍ່ວ່າຈະຢູ່ໃນເອກະສານ ຫຼື ໃນແມ່ແບບຂອງມັນ, ເມື່ອບໍ່ມີການກຳນົດຂໍ້ໂຕ້ແຍ້ງນີ້ຈະຖືກລະເລີຍ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim vStyles As Variant
        vStyles = oDoc.Styles("ParagraphStyles") 'ຮູບແບບທັງໝົດໃນ family
        vStyles = oDoc.Styles("ParagraphStyles", "H*") 'Heading, Heading 1, ...
        vStyles = oDoc.Styles("ParagraphStyles", Used := False, UserDefined := True) ' ຮູບແບບທັງໝົດທີ່ຜູ້ໃຊ້ກຳນົດເອງເຊິ່ງບໍ່ໄດ້ຖືກນຳໃຊ້
        vStyles = oDoc.Styles("ParagraphStyles", ParentStyle := "Standard") ' ຮູບແບບທັງໝົດທີ່ມາຈາກ 'Default Paragraph Style'

##### ໃນ Python

        vStyles = doc.Styles('ParagraphStyles')  #ຮູບແບບທັງໝົດໃນ family
        vStyles = doc.Styles('ParagraphStyles', 'H*')  #Heading, Heading 1, ...
        vStyles = doc.Styles('ParagraphStyles', Used = False, UserDefined = True)  # ຮູບແບບທັງໝົດທີ່ຜູ້ໃຊ້ກຳນົດເອງເຊິ່ງບໍ່ໄດ້ຖືກນຳໃຊ້
        vStyles = doc.Styles('ParagraphStyles', ParentStyle = 'Standard")  # ຮູບແບບທັງໝົດທີ່ມາຈາກ "Default Paragraph Style"

## Toolbars

ວິທີການນີ້ສົ່ງຄືນທັງລາຍຊື່ຂອງຊື່ແຖບເຄື່ອງມືທີ່ມີຢູ່ໃນເອກະສານຕົວຈິງ ຫຼື ອິນສະແຕນຂອງບໍລິການ SFWidgets.Toolbar.

### ໄວຍາກອນ:

svc.Toolbars(opt toolbarname: str): svc
svc.Toolbars(): str[0..]

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

toolbarname: ຊື່ປົກກະຕິຂອງໜຶ່ງໃນແຖບເຄື່ອງມືທີ່ມີຢູ່.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim oToolbar As Object
        Set oToolbar = oDoc.Toolbars("standard")

##### ໃນ Python

        a_list = doc.Toolbars()

## XStyles

ວິທີການນີ້ສົ່ງຄືນການສະແດງຜົນ UNO ຂອງຮູບແບບທີ່ກຳນົດໃຫ້ສຳລັບທຸກປະເພດເອກະສານຍົກເວັ້ນ Base. ຈະສົ່ງຄືນ Nothing ເມື່ອ StyleName ບໍ່ມີຢູ່ໃນ family ທີ່ກຳນົດໃຫ້.

### ໄວຍາກອນ:

svc.XStyles(family: str, stylename: str): uno

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

family: ໜຶ່ງໃນຕະກູນຮູບແບບທີ່ມີຢູ່ໃນເອກະສານຕົວຈິງ, ເປັນຂໍ້ຄວາມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່. ສາມາດດຶງຊື່ຕະກູນທີ່ໃຊ້ໄດ້ມາໂດຍໃຊ້ຄຸນສົມບັດ StyleFamilies.

stylename: ໜຶ່ງໃນຮູບແບບທີ່ມີຢູ່ໃນ family ທີ່ກຳນົດໃຫ້, ເປັນສາຍອັກຂະລະທີ່ຈຳແນກຕົວອັກສອນໃຫຍ່ນ້ອຍ. StyleName ອາດຈະຖືກແປແລ້ວ ຫຼື ບໍ່ກໍຕາມ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim oStyle As Object
        Set oStyle = oDoc.XStyle("ParagraphStyle", "Heading 2")

##### ໃນ Python

        oStyle = doc.XStyle('ParagraphStyle', 'Heading 2')

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

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

ບໍລິການ ScriptForge.Dictionary

ບໍລິການ ScriptForge.UI

ບໍລິການ SFWidgets.Menu

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