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:

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

Methodes

Lijst met methodes in de Writer-service

Forms

ImportStylesFromFile

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

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:

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