Hilfe für LibreOffice 24.8
Die gemeinsam genutzte Bibliothek SFDocuments bietet eine Reihe von Methoden und Eigenschaften, um die Verwaltung und Handhabung von LibreOffice-Dokumenten zu erleichtern.
Einige Methoden sind generisch für alle Arten von Dokumenten und werden vom Modul SF_Document geerbt, während andere Methoden, die spezifisch für Writer-Dokumente sind, im Modul SF_Writer definiert sind.
Vor der Verwendung des Dienstes Writer muss die Bibliothek ScriptForge geladen oder importiert werden:
Der Dienst Writer ist eng mit dem Dienst UI der Bibliothek ScriptForge verwandt. Unten sind einige Beispiele dafür, wie der Dienst Writer aufgerufen werden kann.
Der folgende Codeschnipsel erstellt eine Dienstinstanz Writer, die dem derzeit aktiven Writer-Dokument entspricht.
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1") ' Default = ActiveWindow
  Eine andere Möglichkeit, eine Instanz des Dienstes Writer zu erstellen, ist die Verwendung des Dienstes UI. Im folgenden Beispiel wird ein neues Writer-Dokument erstellt und oDoc ist eine Dienstinstanz Writer:
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateDocument("Writer")
  Oder verwenden Sie die Methode OpenDocument des Dienstes UI:
    Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")
  Es ist auch möglich, den Dienst Writer mit der Methode CreateScriptService zu instanziieren:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")
  Im obigen Beispiel ist "MyFile.odt" der Name eines geöffneten Dokumentfensters. Wenn dieses Argument nicht angegeben wird, wird das aktive Fenster berücksichtigt.
Es wird empfohlen, Ressourcen nach der Verwendung freizugeben:
    Set oDoc = oDoc.Dispose()
  Wenn das Dokument jedoch mit der Methode CloseDocument geschlossen wurde, ist es unnötig, Ressourcen mit dem oben beschriebenen Befehl freizugeben.
    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()
  Die Verwendung des Präfixes "SFDocuments." beim Aufruf des Dienstes ist optional.
| Liste der Methoden im Dienst Writer | ||
|---|---|---|
Abhängig von den bereitgestellten Parametern gibt diese Methode Folgendes zurück:
Eine nullbasierte Matrix (oder ein Tupel in Python) mit den Namen aller im Dokument enthaltenen Formulare (wenn das Argument form fehlt)
Eine Serviceinstanz SFDocuments.Form, die das als Argument angegebene Formular darstellt.
svc.Forms(): str[0..*]
svc.Forms(form: str = ''): svc
svc.Forms(form: int): svc
form: Der Name oder Index, der einem im Dokument gespeicherten Formular entspricht. Fehlt dieses Argument, gibt die Methode eine Liste mit den Namen aller im Dokument verfügbaren Formulare zurück.
In den folgenden Beispielen erhält die erste Zeile die Namen aller Formulare im Dokument und die zweite Zeile das Objekt Form des Formulars mit dem Namen "Form_A".
    Set FormNames = oDoc.Forms()
    Set FormA = oDoc.Forms("Form_A")
  
    form_names = doc.Forms()
    form_A = doc.Forms("Form_A")
  Diese Methode lädt alle zu einer oder mehreren Vorlagenfamilien gehörenden Formatvorlagen aus einer geschlossenen Datei in das eigentliche Dokument. Das eigentliche Dokument muss ein Calc- oder Writer-Dokument sein.
Werden immer zusammen importiert:
ParagraphStyles und CharacterStyles
NumberingStyles und ListStyles
Gibt True zurück, wenn Formatvorlagen erfolgreich importiert wurden.
svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool
filename: Die Datei in der Notation FileSystem, aus der die Formatvorlagen geladen werden sollen. Es wird davon ausgegangen, dass die Datei vom gleichen Dokumenttyp ist wie das eigentliche Dokument.
families: Eine der im eigentlichen Dokument vorhandenen Vorlagenfamilien, als Zeichenfolge mit Berücksichtigung der Groß- und Kleinschreibung oder als Matrix solcher Zeichenfolgen. Lassen Sie dieses Argument leer, um alle Familien zu importieren.
overwrite: Wenn True, werden die vorhandenen Formatvorlagen gegebenenfalls überschrieben. Der Standardwert ist False.
    oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)
  
    doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)
  Sendet den Inhalt des Dokuments an den Drucker. Der Drucker kann zuvor standardmäßig, vom Benutzer oder über die Methode SetPrinter des Dienstes Document definiert werden. Gibt bei Erfolg True zurück.
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: Die Seiten, die gedruckt werden sollen, als Zeichenfolge wie in der Benutzeroberfläche. Beispielsweise: "1-4;10;15-18". Standard = alle Seiten
copies: Die Anzahl der Kopien, Standard ist 1.
printbackground: Druckt das Hintergrundbild, wenn True (Standard).
printblankpages: Wenn False (Standard), werden leere Seiten weggelassen.
printevenpages: Druckt gerade Seiten, wenn True (Standard).
printoddpages: Ungerade Seiten drucken, wenn True (Standard).
printimages: Grafikobjekte drucken, wenn True (Standard).
      oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)
  
    doc.PrintOut(printblankpages = True, copies = 3)