Spis treści

# Usługa SFDocuments.Writer

Biblioteka współdzielona SFDocuments udostępnia szereg metod i właściwości ułatwiających zarządzanie i obsługę dokumentów LibreOffice.

Niektóre metody są ogólne dla wszystkich typów dokumentów i są dziedziczone z modułu SF_Document, natomiast inne metody, które są specyficzne dla dokumentów programu Writer, są zdefiniowane w module SF_Writer.

## Wywoływanie usługi

Przed użyciem usługi Writer należy załadować lub zaimportować bibliotekę ScriptForge:

• Podstawowe makra wymagają załadowania biblioteki ScriptForge przy użyciu następującej instrukcji:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Skrypty Pythona wymagają importu z modułu scriptforge:
from scriptforge import CreateScriptService

Usługa Writer jest ściśle powiązana z usługą UI biblioteki ScriptForge. Poniżej znajduje się kilka przykładów wywołania usługi Writer.

##### W języku Basic

Poniższy fragment kodu tworzy instancję usługi Writer odpowiadającą aktualnie aktywnemu dokumentowi Writer.

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

Innym sposobem utworzenia instancji usługi Writer jest użycie usługi UI. W poniższym przykładzie tworzony jest nowy dokument Writer, a oDoc jest instancją usługi Writer:

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

Lub używając metody OpenDocument z usługi UI:

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

Możliwe jest także utworzenie instancji usługi Writer przy użyciu metody CreateScriptService:

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

W powyższym przykładzie "MyFile.odt" to nazwa otwartego okna dokumentu. Jeżeli ten argument nie zostanie podany, pod uwagę brane będzie aktywne okno.

Zaleca się zwolnienie zasobów po użyciu:

        Set oDoc = oDoc.Dispose()

Jeśli jednak dokument został zamknięty przy użyciu metody CloseDocument, zwalnianie zasobów za pomocą opisanej powyżej komendy staje się niepotrzebne.

##### W języku 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()

Użycie prefiksu "SFDocuments." podczas wywoływania usługi jest opcjonalne.

## Definicje

## Właściwości

## Metody

Lista metod w usłudze Writer
Forms | ImportStylesFromFile | PrintOut

## Forms

W zależności od podanych parametrów ta metoda zwróci:

- Tablica liczona od zera (lub krotka w Pythonie) zawierająca nazwy wszystkich formularzy zawartych w dokumencie (w przypadku braku argumentu form)

- Instancja usługi sfDocuments.Form reprezentująca formularz wymieniony jako argument.

Ta metoda ma zastosowanie tylko w przypadku dokumentów programu Writer. Dokumenty Calc i Base mają własną metodę Forms w usługach Calc i Base.

### Składnia:

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

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

svc.Forms(form: int): svc

### Parametry:

form: nazwa lub indeks odpowiadający formularzowi zapisanemu w dokumencie. W przypadku braku tego argumentu metoda zwróci listę z nazwami wszystkich formularzy dostępnych w dokumencie.

### Przykład:

W poniższych przykładach pierwsza linia pobiera nazwy wszystkich formularzy w dokumencie, a druga linia pobiera obiekt Form formularza o nazwie "Form_A".

##### W języku Basic

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

##### W języku Python

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

## ImportStylesFromFile

Ta metoda ładuje wszystkie style należące do jednej lub większej liczby rodzin stylów z zamkniętego pliku do rzeczywistego dokumentu. Rzeczywisty dokument musi być dokumentem Calc lub Writer.

Są zawsze importowane razem:

- ParagraphStyles i CharacterStyles

- NumberingStyles i ListStyles

Zwraca wartość True, jeśli style zostały pomyślnie zaimportowane.

### Składnia:

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

### Parametry:

filename: plik, z którego mają zostać załadowane style w notacji FileSystem. Zakłada się, że plik należy do tego samego typu dokumentu, co dokument rzeczywisty.

families: jedna z rodzin stylów występujących w rzeczywistym dokumencie jako ciąg znaków, który uwzględnia wielkość liter, lub tablica takich ciągów. Pozostaw ten argument pusty, aby zaimportować wszystkie rodziny.

overwrite: gdy True, rzeczywiste style mogą zostać nadpisane. Wartość domyślna to False.

### Przykład:

##### W języku Basic

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

##### W języku Python

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

## PrintOut

Wysyła zawartość dokumentu do drukarki. Drukarkę można wcześniej zdefiniować domyślnie przez użytkownika lub za pomocą metody SetPrinter usługi Document. Zwraca wartość True, jeśli operacja się powiedzie.

### Składnia:

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: strony do wydrukowania jako ciąg znaków, jak w interfejsie użytkownika. Przykład: "1-4;10;15-18". Domyślnie = wszystkie strony

copies: liczba kopii, domyślnie 1.

printbackground: drukuje obraz tła, gdy True (domyślnie).

printblankpages: gdy False (domyślnie), pomija puste strony.

printevenpages: drukuje strony parzyste, gdy True (domyślnie).

printoddpages: drukuj strony nieparzyste, gdy True (domyślnie).

printimages: drukuj obiekty graficzne, gdy True (domyślnie).

### Przykład:

##### W języku Basic

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

##### W języku Python

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

Wszystkie podstawowe procedury lub identyfikatory ScriptForge poprzedzone znakiem podkreślenia „_” są zarezerwowane do użytku wewnętrznego. Nie należy ich używać w makrach Basic ani skryptach Pythona.

Tematy pokrewne

Usługa SFDocuments.Document

Usługa ScriptForge.UI