Inhoud

# Service SFDocuments.Writer

De gedeelde bibliotheek SFDocuments biedt een aantal methodes en eigenschappen om het beheer en de verwerking van LibreOffice-documenten te vergemakkelijken.

Sommige methodes zijn generiek voor alle soorten documenten en worden overgenomen van de module SF_Document, terwijl andere methodes die specifiek zijn voor Writer-documenten worden gedefinieerd in de module SF_Writer.

## Service aanroep

Voordat de service Writer gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:

• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService

De service Writer is nauw verwant aan de UI-service van de ScriptForge-bibliotheek. Hieronder staan een paar voorbeelden van hoe de service Writer kan worden aangeroepen.

##### In BASIC

Het onderstaande codefragment maakt een Writer service-instantie die overeenkomt met het momenteel actieve Writer-document.

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

Een andere manier om een instantie van de service Writer te maken, is door de UI-service te gebruiken. In het volgende voorbeeld wordt een nieuw Writer-document gemaakt en is oDoc een Writer service-instantie:

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

Of gebruik de methode OpenDocument van de UI-service:

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

Het is ook mogelijk om de service Writer te instantiëren met behulp van de methode CreateScriptService:

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

In het bovenstaande voorbeeld is "MijnBestand.odt" de naam van een geopend documentvenster. Als dit argument niet wordt opgegeven, wordt het actieve venster beschouwd.

Het wordt aanbevolen om na gebruik middelen vrij te maken:

        Set oDoc = oDoc.Dispose()

Als het document echter is gesloten met behulp van de methode CloseDocument, wordt het niet nodig om bronnen vrij te maken met de hierboven beschreven opdracht.

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

Het gebruik van het voorvoegsel "SFDocuments." tijdens het aanroepen van de service is optioneel.

## Definities

## Eigenschappen

## Methodes

Lijst met methodes in de Writer-service
Forms | ImportStylesFromFile | PrintOut

## Forms

Afhankelijk van de parameters retourneert deze methode:

- Een zero-based matrix (of een tuple in Python) met de namen van alle forms die een aangegeven werkblad bevat (indien er bij de aanroep geen argument form is)

- Een instantie van de service SFDocuments.Form die staat voor het form als dat als argument wordt gebruikt.

Deze methode is alleen voor Writer-documenten. Calc en Base documenten hebben hun eigen methode Forms respectievelijk in de service Calc en de service Base.

### Syntaxis:

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

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

svc.Forms(form: int): svc

### Parameters:

form: De naam of index die overeenkomt met een formulier dat in het document is opgeslagen. Als dit argument ontbreekt, retourneert de methode een lijst met de namen van alle formulieren die in het document beschikbaar zijn.

### Voorbeeld:

In de volgende voorbeelden haalt de eerste regel de namen op van alle formulieren in het document en haalt de tweede regel het object Form op van het formulier met de naam "Form_A".

##### In BASIC

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

##### In Python

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

## ImportStylesFromFile

Deze methode laadt alle opmaakprofielen die tot een of meer opmaakprofielfamilies behoren vanuit een gesloten bestand in het daadwerkelijke document. Het eigenlijke document moet een Calc- of een Writer-document zijn.

Worden altijd samen geïmporteerd:

- Alinea-opmaakprofielen en Tekenopmaakprofielen

- Nummeringsopmaakprofielen en Lijstopmaakprofielen

Geeft True als opmaakprofielen succesvol zijn geïmporteerd.

### Syntaxis:

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

### Parameters:

filename: Het bestand waaruit de opmaakprofielen moeten worden geladen in de notatie FileSystem. Er wordt aangenomen dat het bestand van hetzelfde documenttype is als het daadwerkelijke document.

families: Een van de opmaakprofielfamilies die in het eigenlijke document aanwezig is, als een hoofdlettergevoelige tekenreeks of een matrix van dergelijke tekenreeksen. Laat dit argument leeg om alle families te importeren.

overwrite: Als True, de aanwezige opmaakprofielen kunnen worden overschreven. Standaard isFalse.

### Voorbeeld:

##### In BASIC

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

##### In Python

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

## PrintOut

Stuur de inhoud van het document naar de printer. De printer kan eerder standaard gedefinieerd zijn, door de gebruiker of door de SetPrinter methode van de Document-service. Retourneert True wanneer succesvol.

### Syntaxis:

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

### Parameters:

pages: De pagina's die als een tekenreeks moeten worden afgedrukt, zoals in de gebruikersinterface. Voorbeeld: "1-4;10;15-18". Standaard = alle pagina's

copies: Het aantal exemplaren, standaard is 1.

printbackground: Drukt de achtergrondafbeelding af indien True (standaard).

printblankpages: Wanneer False (standaard), worden lege pagina's weggelaten.

printevenpages: Drukt zelfs pagina's af wanneer True (standaard).

printoddpages: Print oneven pagina's wanneer True (standaard).

printimages: Grafische objecten afdrukken wanneer True (standaard).

### Voorbeeld:

##### In BASIC

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

##### In Python

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

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.

Verwante onderwerpen

SFDocuments.Document-service

Service ScriptForge.UI