Obsah

# Služba SFDocuments.Writer

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.

## Volání služby

Před používáním služby Writer je nutné načíst či naimportovat knihovnu ScriptForge pomocí:

• V makrech Basicu je nutné načíst knihovnu ScriptForge následujícím příkazem:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Ve skriptech Pythonu je nezbytné import z modulu scriptforge:
from scriptforge import CreateScriptService

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 Basicu

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ý.

##### V Pythonu

        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é.

## Definice

## Vlastnosti

## Metody

Seznam metod služby Writer
Forms | ImportStylesFromFile | PrintOut

## Forms

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.

Tato metoda je k dispozici pouze pro dokumenty Writeru. Dokumenty aplikací Calc a Base mají vlastní metodu Forms ve službách Calc a Base.

### Syntaxe:

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

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

svc.Forms(form: int): svc

### Parametry:

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.

### Příklad:

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".

##### V Basicu

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

##### V Pythonu

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

## ImportStylesFromFile

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.

### Syntaxe:

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

### Parametry:

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.

### Příklad:

##### V Basicu

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

##### V Pythonu

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

## PrintOut

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.

### Syntaxe:

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

### Parametry:

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.

### Příklad:

##### V Basicu

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

##### V Pythonu

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

Všechny procedury nebo identifikátory knihovny ScriptForge, které jsou uvozeny podtržítkem "_", jsou určeny pro interní použití. Není zamýšleno je používat v makrech Basicu nebo skriptech Pythonu.

Související témata

Služba SFDocuments.Document

Služba ScriptForge.UI

Podpořte nás!