Service SFDocuments.Writer

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

Sommige methoden zijn generiek voor alle soorten documenten en worden overgenomen van de module SF_Document, terwijl andere methoden 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:

note

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

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


Definities

Eigenschappen

Methoden

Lijst met methoden in de Writer-service

Forms

PrintOut

…


Forms

Afhankelijk van de parameters retourneert deze methode:

note

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

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

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


Help ons, alstublieft!