Nápověda LibreOffice 25.2
Sdílená knihovnaSFDocuments poskytuje řadu metod a vlastností usnadňujících správu a obsluhu dokumentů LibreOffice.
Některé metody, zděděné z modulu SF_Document, jsou obecné pro všechny typy dokumentů, zatímco jiné, specifické pro dokumenty Writeru, jsou definovány v modulu SF_Writer.
Před používáním služby Writer je nutné načíst či naimportovat knihovnu ScriptForge pomocí:
Služba Writer úzce souvisí se službou UI knihovny ScriptForge. Níže je uvedeno několik příkladů, jak lze vytvořit instanci služby Writer.
V následující části kódu se vytvoří instance služby Writer, která odpovídá aktuálně aktivnímu dokumentu Writeru.
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1") ' Default = ActiveWindow
  Jiným způsobem, jak vytvořit instanci služby Writer, je použít službu UI. V následujícím příkladu se vytvoří nový dokument Writeru, proměnná oDoc je instancí služby Writer:
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateDocument("Writer")
  Nebo pomocí metody OpenDocument ze služby UI:
    Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")
  Instanci služby Writer je také možné vytvořit pomocí metody CreateScriptService:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")
  V příkladu výše je "MyFile.odt" název otevřeného dokumentu. Není-li tento argument uveden, použije se aktivní okno.
Po použití se doporučuje uvolnit zdroje:
    Set oDoc = oDoc.Dispose()
  Jestliže však byl dokument zavřen metodou CloseDocument, není výše uvedený příkaz pro uvolnění zdrojů nutný.
    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()
  Použití předpony "SFDocuments." není při volání této služby povinné.
| Seznam metod služby Writer | ||
|---|---|---|
V závislosti na předaných parametrech tato metoda vrátí:
Pole začínající od 0 (případně n-tice v Pythonu) s názvy všech formulářů obsažených v dokumentu (pokud chybí argument form)
Instanci služby SFDocuments.Form představující formulář uvedený jako argument.
svc.Forms(): str[0..*]
svc.Forms(form: str = ''): svc
svc.Forms(form: int): svc
form: Název nebo index odpovídající formuláři uloženému v dokumentu. Pokud tento argument chybí, metoda vrátí seznam s názvy všech formulářů dokumentu.
V následujících příkladech se na prvním řádku získají názvy všech formulářů v dokumentu, na druhém řádku se vrátí objekt Form z formuláře pojmenovaného "Form_A".
    Set FormNames = oDoc.Forms()
    Set FormA = oDoc.Forms("Form_A")
  
    form_names = doc.Forms()
    form_A = doc.Forms("Form_A")
  Tato metoda načte z uzavřeného souboru do aktuálního dokumentu všechny styly náležející k jedné či více rodinám stylů. Aktuální dokument musí být typu Calc nebo Writer.
Vždy se spolu importují:
ParagraphStyles a CharacterStyles
NumberingStyles a ListStyles
V případě úspěšného importu stylů vrátí True.
svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool
filename: Soubor, ze kterého se mají styly importovat, v zápisu FileSystem. Předpokládá se, že je stejného druhu jako aktuální dokument.
families: Některá z rodin stylů nacházejících se v aktuálním dokumentu, a to jako řetězec nebo pole řetězců, u nichž se rozlišuje velikost písmen. Při vynechání se naimportují všechny rodiny.
overwrite: Je-li True, aktuální styly mohou být přepsány. Výchozí je False.
    oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)
  
    doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)
  Odešle obsah dokumentu na tiskárna. Tiskárna mohla být dříve určena výchozím nastavením, uživatelem nebo metodou SetPrinter služby Document. V případě úspěšného odeslání vrátí 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: Stránky, které se mají vytisknout, jako řetězec podobný tomu, který se zadává v uživatelském rozhraní, například: "1-4;10;15-18". Výchozí jsou všechny stránky.
copies: Počet kopií, výchozí je 1.
printbackground: Je-li True (výchozí), vytiskne se obrázek na pozadí.
printblankpages: Je-li False (výchozí), vynechají se prázdné stránky.
printevenpages: Je-li True (výchozí), vytisknou se sudé stránky.
printoddpages: Je-li True (výchozí), vytisknou se liché stránky.
printimages: Je-li True (výchozí), vytisknou se grafické objekty.
      oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)
  
    doc.PrintOut(printblankpages = True, copies = 3)