LibreOffice 25.2 Help
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.
Voordat de service Writer gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:
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.
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.
    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.
| Lijst met methodes in de Writer-service | ||
|---|---|---|
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.
svc.Forms(): str[0..*]
svc.Forms(form: str = ''): svc
svc.Forms(form: int): svc
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.
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".
    Set FormNames = oDoc.Forms()
    Set FormA = oDoc.Forms("Form_A")
  
    form_names = doc.Forms()
    form_A = doc.Forms("Form_A")
  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.
svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool
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.
    oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)
  
    doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)
  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.
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
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).
      oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)
  
    doc.PrintOut(printblankpages = True, copies = 3)