Wobsah

# Słužba SFDocuments.Document

Biblioteka SFDocuments metody a kajkosće skići, kotrež rjadowanje a wobdźěłowanje dokumentow LibreOfficeDev wosnadnić.

Metody, kotrež su na wšě typy dokumentow (tekstowe dokumenty, tabelowe dokumenty, prezentacije atd.) nałožujomne, kotrež słužba SFDocuments.Document k dispoziciji staja. Někotre přikłady su:

- Dokumenty wočinić, začinić a składować

- Přistup k standardnym abo swójskim kajkosćam dokumentow

Kajkosće, metody abo argumenty, kotrež su z (*) markěrowane, z na dokumenty Base nałožujomne NJEJsu.

Metody a kajkosće, kotrež su specifiske za wěste komponenty LibreOfficeDev w separatnych słužbach, na přikład SFDocuments.SF_Calc a SFDocuments.SF_Base.

Hačrunjež rěč Basic zdźědźenje mjez objektowymi klasami njeskići, dadźa so poslednje słužby jako podklasy słužby SFDocuments.Document wobhladać. Tajke podklasy móža kajkosće a metody wuwołać, kaž su deleka wopisane.

## Słužbowe wuwołanje

Před wužiwanjom słužby Document dyrbi so biblioteka ScriptForge začitać abo importować:

• Makra Basic sej wužaduja, zo so biblioteka ScriptForge z pomocu slědowaceho přikaza začituje:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Skripty Python sej import z modula scriptforge wužaduja:
from scriptforge import CreateScriptService

Deleka su tři warianty za to, kak da so słužba Document wuwołać.

##### W Basic

Wužiwanje metody getDocument ze słužby ScriptForge.UI:

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

Abo wužiwaće metodźe CreateDocument a OpenDocument ze słužby UI.

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

wužiwanje woknowe mjeno, jeli dokument je hižo wočinjeny.

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

Wužiwanje dokumenta, na kotryž so přez ThisComponent wotkazuje. To je předewšěm wužitne, hdyž makro w Basic IDE běži.

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

Z makra, kotrež je so přez dokumentowy podawk wuwabiło.

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

Słužba Document je jara na słužbje UI a Filesystem podobna.

Chibazo, hdyž dokument je so přez program z metodu CloseDocument začinił (je potom njetrjebawša), poruča so, resursy po wužiwanju wuswobodźić:

        Set oDoc = oDoc.Dispose()

##### W 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)
            # (...)

Wužiwanje prefiksa "SFDocuments., mjeztym zo wuwołanje słužby je opcionalne.

## Kajkosće

Mjeno | Přećiwo pisanju škitany | Typ | Wopisanje
--- | --- | --- | ---
CustomProperties (*) | Ně | Dictionary service | Wróći objektowu instancu ScriptForge.Dictionary. Da so po aktualizaciji znowa kajkosći za aktualizowanje dokumenta přepodać. Jednotliwe zapiski słownika móže pak znamješkowe rjećazki, ličby, datumy (Basic) abo zapiski com.sun.star.util.Duration być.
Description (*) | Ně | String | Zmóžnja přistup ke kajkosći Wopisanje dokumenta (tež jako „Komentary“ znate)
DocumentProperties (*) | Haj | Dictionary service | Wróći objekt ScriptForge.Dictionary, kotryž wšě zapiski wobsahuje. Statistika dokumenta si wobsahowane. Dźiwajće na to, zo su specifiske za dokumentowy typ. Na přikład dokument Calc zapisk „CellCount“ wobsahuje. Druhe dokumenty nic.
DocumentType | Haj | String | Hódnota znamješkoweho rjećazka z dokumentowym typom ("Base", "Calc", "Writer" atd.)
ExportFilters (*) | Haj | String array | Wróći lisćinu z mjenami eksportowych filtrow, kotrež su na aktualny dokument jako na nuli bazowaca matriks znamješkowych rjećazkow nałožujomne. Filtry, kotrež so za import kaž tež eksport wužiwaja, so tež wróćeja.
FileSystem | Haj | String | Wróći znamješkowy rjećazk ze šćežku URL ke korjenjowemu zapisej wirtuelneho datajoweho systema dokumenta. Wužiwajće słužbu FileSystem, zo byšće sej jeho wobsah wobhladał a zo byšće dataje wutworił, wočinił a čitał, kotrež su w nim składowane. Hlejće tutu strony pomocy, zo byšće wjace wo tym zhonił, kak maće přistup k rjadowakam a datajam we wirtuelnym datajowym systemje dataje LibreOfficeDev a kak móžeće je wobdźěłać.
ImportFilters (*) | Haj | String array | Wróći lisćinu z mjenami importowych filtrow, kotrež su na aktualny dokument jako na nuli bazowaca matriks znamješkowych rjećazkow nałožujomne. Filtry, kotrež so za import kaž tež eksport wužiwaja, so tež wróćeja.
IsAlive | Haj | Boolean | True, hdyž dokument njeje so začinił (na př. přez akciju wužiwarja).
IsBase IsCalc IsDraw IsFormDocument IsImpress IsMath IsWriter | Haj | Boolean | Dokładnje jedna z tutych kajkosćow je True za daty dokument.
Keywords (*) | Ně | String | Zmóžnja přistup ke kajkosći Klučowe słowa dokumenta. Předstaja so jako přez komu dźělena lisćina klučowych słowow.
MenuHeaders | Haj | String array | Wróći lisćinu z menijowymi mjenami, kotrež su w menijowej lajsće.
Readonly (*) | Haj | Boolean | True, jeli dokument je woprawdźe přećiwo pisanju škitany.
StyleFamilies (*) | Haj | String array | Lisćina swójby předłohow, kotrež su k dispoziciji. Płaći za wšě dokumentowe typy nimo Base.
Subject (*) | Ně | String | Zmóžnja přistup ke kajkosći Tema dokumenta.
Title (*) | Ně | String | Zmóžnja přistup ke kajkosći Titul dokumenta.
XComponent | Haj | Objekt UNO | Objekt UNO com.sun.star.lang.XComponent abo com.sun.star.comp.dba.ODatabaseDocument, kotryž dokument reprezentuje.
XDocumentSettings (*) | Haj | Objekt UNO | Objekt UNO com.sun.star.XXX.DocumentSettings, kotrehož XXX je pak sheet, text, drawing abo presentation. Tutón objekt přistup k nutřkownym kajkosćam UNO skići, kotrež su za typ dokumenta specifiske.

### Přikład:

##### W Basic

Slědowacy přikład wšě kajkosće dokumenta ćišći. Dźiwajće na to, zo objekt oDoc, kotryž so přez metodu UI.OpenDocument wróća, je objekt 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()

##### W Python

Za přistup k dokumentowym kajkosćam w skripće Python, trjeba wužiwar direktny přistup, zo by jich mjena wužiwał, hlejće deleka:

        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()

Lisćina metodow w słužbje Document
Activate CloseDocument ContextMenus CreateMenu DeleteStyles Echo | ExportAsPDF PrintOut RemoveMenu RunCommand Save SaveAs | SaveCopyAs SetPrinter Style Toolbars XStyle

## Activate

Wróći True, jeli dokument móžeše so aktiwizować. Hewak so na poprawnym wužiwarskim powjerchu ničo njezměni. Wotpowěduje metodźe Activate słužby UI.

Tuta metoda je wužitan, hdyž je trjeba, fokus za dokument stajić, kotryž je miniměrowany abo schowany.

### Syntaksa:

svc.Activate(): bool

### Přikład:

Slědowacy přikład z toho wuchadźa, zo dataja "My_File.ods" je hižo wočinjena, ale nic aktiwna.

##### W Basic

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

##### W Python

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

Mysliće na to, zo móžeće słužbu Document wuwołać, hdyž pak "Document" pak "SFDocuments.Document" do CreateScriptService přepodawaće.

## CloseDocument

Začinja dokument. Jeli dokument je hižo začinjeny, nima tuta metoda, njedźiwajo na to, hač dokument je so začinił, žadyn wuskutk a wróća False.

Metoda tež False wróći, jeli wužiwar wotpokazuje, jón začinić.

Wróći True, jeli dokument je so wuspěšnje začinił.

### Syntaksa:

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

### Parametry:

saveask: Jeli True (standard), dóstanje wužiwar namołwu wobkrućić, hač měli so změny na tačel pisać. Tutón argument so ignoruje, jeli dokument njeje so změnił.

### Přikład:

##### W Basic

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

##### W Python

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

## ContextMenus

Tuta metoda pak lisćinu kontekstowych menijow wróća, kotrež su w aktualnym dokumenće k dispoziciji pak instancu słužby SFWidgets,ContextMenu.

### Syntaksa:

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

### Parametry:

contextmenuname: Jedyn z kontekstowych menijow, kotrež su k dispoziciji. Mjeno kontekstoweho menija je poslednja komponenta resursoweho URL: „private:resource/popupmenu/mjeno-tu“.

submenuchar: Dźělatko, kotrež so wužiwa, zo by menijowe štomy wutworiło, hdyž so metody jako AddItem ze słužby ContextMenu wuwołuja. Standardna hódnota je „>“.

### Přikład:

##### W Basic

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

##### W Python

                a_list = doc.ContextMenus()

## CreateMenu

Wutwori nowy menijowy zapisk w menijowej lajsće wěsteho dokumentoweho wokna.

Tuta metoda instancu słužby SFWidgets.Menu wróći.

wutworjeny meni je jenož za aktualne posedźenje LibreOfficeDev k dispoziciji a so ani w dokumenće ani w globalnych nastajenjach nałoženja njeskładuje. Tohodla so meni zhubi, hdyž so dokumentowe wokno začinja. Zjewi so jenož znowa, hdyž makro, kotrež meni wutworja, so zaso wuwjedźe.

### Syntaksa:

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

### Parametry:

menuheader: Mjeno najwyšeje runiny noweho menija.

before: Mjeno (jako znamješkowy rjećazk) abo pozicija (jako cyła ličba, započinajo z 1) eksistowaceho menija, před kotrymž so nowy meni placěruje. Jeli hódnota za tutón argument definowana njeje, so meni na poslednjej poziciji w menijowym lajsće wutwori.

submenuchar: Dźělatko, kotrež so wužiwa, zo by menijowe štomy wutworiło, hdyž so metody jako AddItem ze słužby Menu wuwołuja. Standardna hódnota je ">".

### Přikład:

##### W Basic

        Dim oDoc as Object, oMenu as Object
        Set oDoc = CreateScriptService("Document")
        Set oMenu = oDoc.CreateMenu("Mój meni")
        With oMenu
            ' Menijej zapiski přidać
            .AddItem("Item A")
            .AddItem("Item B")
            ' ...
            ' Po wutworjenju menija da so słužbowa instanca zničić
            .Dispose()
        End With

##### W Python

        doc = CreateScriptService("Document")
        menu = doc.CreateMenu("Mój meni")
        menu.AddItem("Item A")
        menu.AddItem("Item B")
        # ...
        menu.Dispose()

Hlejće stronu pomocy SFWidgets.Menu, zo byšće wjace wo tym zhonił, kak móžeće menije w dokumentowych woknach wutworić/wotstronić.

## DeleteStyles

Potłóčuje jednotliwu předłohu abo matriks předłohow, kotrež so po swojich mjenach we wěstych swójbach předłohow podawaja. Jenož swójske předłohi dadźa so zhašeć, zatwarjene předłohi so ignoruja. Płaći za wšě dokumentowe typy nimo Base a FormDocument.

### Syntaksa:

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

### Parametry:

family: Jedna ze swójbow předłohow w poprawnym dokumenće jako znamješkowy rjećazk, kotryž na wulkopisanje dźiwa. Płaćiwe swójbne mjena dadźa so z pomocu kajkosće StyleFamilies wotwołać.

styleslist: Jednotliwe mjeno předłohi jako znamješkowy rjećazk abo matriks mjenow předłohow. Mjena předłohow móža lokalizowane być abo nic. StylesList je w normalnym padźe wudaće wuwjedźenja metody Styles().

### Přikład:

##### W Basic

        ' Njewužite wotstawkowe předłohi wotstronić
        Const family = "ParagraphStyles"
        aList = oDoc.Styles(family, used := False, userDefined := True)
        oDoc.DeleteStyles(family, aList)

##### W Python

        # Předłohi po prefiksu wotstronić
        a_list = doc.Styles('ParagraphStyles', namepattern = "Py*")
        doc.Styles('ParagraphStyles', a_list)

## Echo

Přetorhnje aktualizacije wužiwarskeho powjercha (UI) za wuwjedźenje makra. Na přeće da so pokazowak myški do pěskoweho časnika změnić, mjeztym zo so aktualizacije wužiwarskeho powjercha přetorhuja.

Tuta metoda snano wukonowe lěpšiny za makra skići, kotrež procesy wuwjedu, kotrež sej aktualizacije wužiwarskeho powjercha wužaduja.

### Syntaksa:

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

### Parametry:

echoon: Podajće False, zo byšće aktualizacije wužiwarskeho powjercha přetorhnył. Standardna hódnota je True, štož aktualizacije wužiwarskeho powjercha we woprawdźitym času zmóžnja.

hourglass: Podajće True, zo byšće pokazowak myški do pěskoweho časnika změnił (standard = False).

Hdyž pokazowak myški pohibujeće, po tym zo je so do pěskoweho časnika změnił, móže so stać, zo so na swojim nowym pozadku do druheho pokazowaka změni.

### Přikład:

##### W Basic

        ' Přetorhnje aktualizacije wužiwarskeho powjercha a měnja pokazowak myški do pěskoweho časnika
        oDoc.Echo(EchoOn := False, HourGlass := True)
        ' Druhe makrowe přikazy
        ' ...
        ' Wobnowja aktualizacije wužiwarskeho powjercha a pokazowak myški
        oDoc.Echo()

##### W Python

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

## ExportAsPDF

Eksportuje dokument direktnje jako PDF-dataju do podateho městna. Wróći True, jeli PDF-dataja je so wuspěšnje wutworiła.

Eksportowe nastajenja dadźa so pak manuelnje z pomocu dialoga Dataja – Eksportować jako – Jako PDF eksportować… pak přez wuwołanje metodow GetPDFExportOptions a SetPDFExportOptions ze słužby Session nastajić.

### Syntaksa:

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

### Parametry:

filename: Połna šćežka a mjeno PDF-dataje, kotraž so ma wutworić. Dyrbi so po notaciji SF_FileSystem.FileNaming złožić.

overwrite: Podawa, hač cilowa dataja da so přepisać (standard = False). Zmylk nastanje, jeli overwrote je na False stajena a cilowa dataja hižo eksistuje.

pages: Znamješkowy rjećazk, kotryž podawa, kotre strony so eksportuja. Tutón argument samsnu notaciju kaž w dialogu Dataja – Eksportować jako – Jako PDF eksportować… wužiwa.

password: Podawa hesło za wočinjenje PDF-dataje.

watermark: Tekst, kotryž so ma jako wodowe znamjo w PDF-dataji wužiwać, kotryž so na kóždej stronje rezultowaceje PDF-dataje rysuje.

### Přikład:

##### W Basic

Slědowacy přikład aktualny dokument jako PDF-dataju eksportuje, hesło definuje a cilowu dataju přepisuje, jeli hižo eksistuje.

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

Slědowaca kodowa šlipka so aktualne eksportowe nastajenja PDF wotprašuje a wužiwa je, zo by PDF-dataju wutworiła.

        Dim exportSettings as Object, oSession as Object
        oSession = CreateScriptService("Session")
        exportSettings = oSession.GetPDFExportOptions()
        ' Staja nastajenje na True, zo bychu so komentary jako PDF-noticy eksportowali
        exportSettings.ReplaceItem("ExportNotes", True)
        oSession.SetPDFExportOptions(exportSettings)
        oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")

##### W 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

Tuta metoda wobsah dokumenta k standardnemu ćišćakej sćele, abo k ćišćakej, kotryž je so přez metodu SetPrinter definował.

Wróći True, jeli dokument je so wuspěšnje wućišćał.

### Syntaksa:

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

### Parametry:

pages: Strony, kotrež so maja jako znamješkowy rjećazk ćišćeć, kaž we wužiwarskim powjerchu. Přikład: "1-4;10;15-18". Standard je wšě strony.

copies: Ličba kopijow. Standard je 1.

### Přikład:

##### W Basic

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

##### W Python

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

## RemoveMenu

Wotstronja meni najwyšeje runiny z menijoweje lajsty dateho dokumentoweho wokna.

Wróći True, jeli podaty meni da so wotstronić. Jeli podaty meni njeeksistuje, metoda False wróći.

Tuta metoda da so wužiwać, zo by menijowy zapisk z dokumentoweho wokna wotstronił, inkluziwnje standardne menije. Ale žana z tutych změnow w menijowej lajsće so w dokumenće abo nałoženskich nastajenjow składuje. Zo byšće menijowu lajstu do standardnych nastajenjow wobnowił, začińće prosće dokumentowe wokno a wočińće jo znowa.

### Syntaksa:

svc.RemoveMenu(menuheader: str): bool

### Parametry:

menuheader: Mjeno najwyšeje runiny menija, kotryž so ma wotstronić.

### Přikład:

##### W Basic

        Dim oDoc as Object
        Set oDoc = CreateScriptService("Document")
        oDoc.RemoveMenu("Mój meni")

##### W Python

        doc = CreateScriptService("Document")
        doc.RemoveMenu("Mój meni")

Hlejće stronu pomocy SFWidgets.Menu, zo byšće wjace wo tym zhonił, kak móžeće menije w dokumentowych woknach wutworić/wotstronić.

## RunCommand

Wuwjedźe přikaz UNO w dokumentowym woknje, kotrež je ze słužbowej instancu zwjazane. Někotre typiske přikazy su: Save, SaveAs, ExportToPDF, Undo, Copy, Paste atd.

Dokument sam njetrjeba aktiwny być, zo bychu so přikazy wuwjedli.

Přikazy dadźa so z argumentami abo bjez argumentow wuwjesć. Argumenty so njepřepruwuja, prjedy hač so přikaz wuwjedźe. Jeli přikaz abo jeho argumenty su njepłaćiwe, so ničo njestanje.

Za dospołnu lisćinu přikazow UNO, kotrež dadźa so w LibreOfficeDev wuwjesć, hlejće wikijowu stronu Development/DispatchCommands (jendźelsce).

### Syntaksa:

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

### Parametry:

command: Na wulkopisanje dźiwacy znamješkowy rjećazk, kotryž mjeno přikaza UNO wobsahuje. Zapřijimanje prefiks ".uno:" do přikaza je opcionalne. Přikaz sam so za korektnosću njepřepruwuje. Jeli so ničo po wuwołanju přikaza njestawa, je přikaz najskerje wopačny.

args: Podajće za kóždy argument, kotryž so ma přikazej přepodać, por, kotryž mjeno a hódnotu argumenta wobsahuje.

### Přikład:

##### W Basic

Slědowacy přikład přikaž SelectData w dataji Calc z mjenom "MyFile.ods" wuwjedźe, štož k wuběranju datoweho wobłuka na zakładźe tuchwilu wubraneje cele wjedźe. Dźiwajće na to, zo tutón přikaz argumenty njetrjeba.

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

Deleka je přikład, kotryž přikaz ReplaceAll wuwjedźe a hódnoće za jeho argumentaj SearchString a ReplaceString přepodawa.

        ' Argumenty, kotrež so přikazej přepodawaja:
        ' SearchString  = "abc"
        ' ReplaceString = "ABC"
        oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")

Dźiwajće na to, zo wuwołanje přikaza ReplaceAll bjez argumentow dialog Pytać a wuměnić wočinja.

##### W Python

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

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

W Python je tež móžno, RunCommand z pomocu argumentow klučowych słowow wuwołać:

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

Kóžda komponenta LibreOfficeDev ma swójsku sadźbu přikazow. Jedna lochka móžnosć, zo byšće přikazy wuknył, je Nastroje – Přiměrić… – rajtark: Tastatura. Hdyž swoju myšku nad funkciju w lisćinje Funkcija pozicioněrujeće, so pomocny tekst z wotpowědnym přikazom UNO zjewi.

## Save

Składuje dokument na městnje dataje, z kotrehož je so začitał. Metoda so ignoruje, jeli dokument njeje so změnił.

Wróći False, jeli dokument njeda so składować. Zmylk so wuwabi, jeli dataja je jako přećiwo pisanju škitany wočinjena, abo jeli je nowa dataja, kotraž hišće składowana njeje.

Dokument sam njetrjeba aktiwny być, zo by tutu metodu wuwjedł.

### Syntaksa:

svc.Save(): bool

### Přikład:

##### W Basic

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

##### W Python

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

## SaveAs

Składuje dokument na podatym datajowym městnje. Nowe městno budźe mjeno noweje dataje, na kotrež so jednore wuwołanja metody Save nałožuja.

Wróći False, jeli dokument njeda so składować. Zmylk so wuwabi, hdyž so přepisowanje cila wotpokazuje abo hdyž je atribut read-only (přećiwo pisanju škitany) za cil stajeny.

Dokument sam njetrjeba aktiwny być, zo by tutu metodu wuwjedł.

### Syntaksa:

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

### Parametry:

filename: Znamješkowy rjećazk, kotryž datajowe mjeno wobsahuje, kotrež so ma wužiwać. Dyrbi so po notaciji SF_FileSystem.FileNaming złožić.

overwrite: Jeli True, móže so cilowa dataja přepisać (standard = False).

password (*): Znamješkowy rjećazk bjez mjezoty, zo by dokument škitał.

filtername (*): Mjeno filtra, kotryž so ma za skaodwanje dokumenta wužiwać. Jeli so tutón argument přepodawa, dyrbi filter eksistować.

filteroptions (*): Opcionalny znamješkowy rjećazk nastajenjow, kotrež su filtrej přirjadowane.

### Přikład:

##### W Basic

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

##### W Python

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

## SaveCopyAs

Składuje kopiju dokumenta abo eksportuje jón do podateho datajoweho městna. Poprawne městno njezměnjene wostawa.

Wróći False, jeli dokument njeda so składować. Zmylk so wuwabi, hdyž so přepisowanje cila wotpokazuje abo hdyž je atribut read-only (přećiwo pisanju škitany) za cil stajeny.

Dokument sam njetrjeba aktiwny być, zo by tutu metodu wuwjedł.

### Syntaksa:

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

### Parametry:

filename: Znamješkowy rjećazk, kotryž datajowe mjeno wobsahuje, kotrež so ma wužiwać. Dyrbi so po notaciji SF_FileSystem.FileNaming złožić.

overwrite: Jeli True, móže so cilowa dataja přepisać (standard = False).

password (*): Znamješkowy rjećazk bjez mjezoty, zo by dokument škitał.

filtername (*): Mjeno filtra, kotryž so ma za skaodwanje dokumenta wužiwać. Jeli so tutón argument přepodawa, dyrbi filter eksistować.

filteroptions (*): Opcionalny znamješkowy rjećazk nastajenjow, kotrež su filtrej přirjadowane.

### Přikład:

##### W Basic

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

##### W Python

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

## SetPrinter

Definuje nastajenja ćišćaka za dokument.

Wróći True, hdyž je wuspěšna.

### Syntaksa:

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

### Parametry:

printer: Mjeno čakanskeho rynka ćišćaka, do kotrehož so ma ćišćeć. Jeli faluje, so standardny ćišćak wužiwa.

orientation: Pak PORTRAIT abo LANDSCAPE. Hdyž faluje, so to po nastajenjach ćišćaka njezměnjene wostawa.

paperformat: Podawa papjerowy format jako znamješkowy rjećazk, kotryž móže pak A3, A4, A5, LETTER, LEGAL pak TABLOID być. Wostawa njezměnjeny, hdyž faluje.

### Přikład:

##### W Basic

        oDoc.SetPrinter(Orientation := "PORTRAIT")

##### W Python

        doc.SetPrinter(paperformat='TABLOID')

## Styles

Wotwołuje lisćinu předłohow, kotrež opcionalnym zestajenym kriterijam wotpowěduja, wróćena matriks móže prózdna być. Płaći za wšě dokumentowe typy nimo Base.

### Syntaksa:

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

family: Jedna ze swójbow předłohow w poprawnym dokumenće jako znamješkowy rjećazk, kotryž na wulkopisanje dźiwa. Płaćiwe swójbne mjena dadźa so z pomocu kajkosće StyleFamilies wotwołać.

category: Na wulkopisanje dźiwacy znamješkowy rjećazk: TEXT, CHAPTER, LIST, INDEX, EXTRA, HTML. Hlejće paragraph style category (kategorija wotstawkoweje předłohi) w dokumentaciji API za jich woznamy.

Tutón argument so ignoruje, hdyž so swójba wot „ParagraphStyles“ rozeznawa.

namepattern: Filter za mjena předłohow jako muster znamješkoweho rjećazka, kotryž na wulkopisanje dźiwa. Mjena nutřkowne a lokalizowane mjena wobsahuja.

Dowolene wildcardy su:

- "?", kotryž jednotliwe znamješko reprezentuje.

- "*", kotryž žane znamješko, jedne znamješko abo wjacore znamješka reprezentuje

parentstyle: Hdyž eksistuje, so jenož podrjadowane elementy podateho mjena nadrjadowaneje předłohi, lokalizowane abo nic, wobchowaja.

used: Hdyž True, dyrbi so předłoha w dokumenće wužiwać, hdyž faluje, so argument ignoruje.

userdefined: Hdyž True, dyrbi předłoha wot wužiwarja přidata być, pak w dokumenće pak w jeje dokumentowej předłoze. Hdyž njeeksistuje, so argument ignoruje.

### Přikład:

##### W Basic

        Dim vStyles As Variant
        vStyles = oDoc.Styles("ParagraphStyles") ' Wšě předłohi w swójbje
        vStyles = oDoc.Styles("ParagraphStyles", "N*") ' Nadpismo, Nadpismo 1, ...
        vStyles = oDoc.Styles("ParagraphStyles", Used := False, UserDefined := True) ' Wšě swójske formatowe předłohi, kotrež so njewužiwaja
        vStyles = oDoc.Styles("ParagraphStyles", ParentStyle := "Standard") ' Wšě předłohi, kotrež su wot wotstawkoweje předłohi „Standard“ wotwodźene

##### W Python

        vStyles = doc.Styles('ParagraphStyles' # Wšě formatowe předłohi w swójbje
        vStyles = doc.Styles('ParagraphStyles', 'N*') # Nadpismo, Nadpismo 1, ...
        vStyles = doc.Styles('ParagraphStyles', Used = False, UserDefined = True) # Wšě swójske formatowe předłohi, kotrež so njewužiwaja
        vStyles = doc.Styles('ParagraphStyles', ParentStyle = 'Standard") # Wšě formatowe předłohi, kotrež su wot wotstawkoweje předłohi „Standard“ wotwodźene

## Toolbars

Tuta metoda pak lisćinu mjenow symbolowych lajstow, kotrež su k dispoziciji, w poprawnym dokumenće pak instancu słužby SFWidgets.Toolbar wróći.

### Syntaksa:

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

### Parametry:

toolbarname: Zwučene mjeno jedneje ze symbolowych lajstow, kotrež su k dispoziciji.

### Přikład:

##### W Basic

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

##### W Python

        a_list = doc.Toolbars()

## XStyles

Tuta metoda reprezentaciju UNO podateje formatoweho předłohi za wšě dokumentowe typy nimo Base wróća. Nothing so wróća, hdyž StyleName w podatej swójbje njeeksistuje.

### Syntaksa:

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

### Parametry:

family: Jedna ze swójbow předłohow w poprawnym dokumenće jako znamješkowy rjećazk, kotryž na wulkopisanje dźiwa. Płaćiwe swójbne mjena dadźa so z pomocu kajkosće StyleFamilies wotwołać.

stylename: Jedna z formatowych předłohow w podatej swójbje, jako znamješkowy rjećazk, kotryž na wulkopisanje dźiwa. StyleName móže lokalizowany być abo nic.

### Přikład:

##### W Basic

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

##### W Python

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

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.

Podobne temy

Słužba ScriptForge.Dictionary

ScriptForge.UI service

Słužba SFWidgets.Menu

Prošu podpěrajće nas!