Guida di LibreOffice 25.2
La libreria condivisa SFDocuments fornisce una serie di metodi e proprietà che facilitano la gestione e il trattamento dei documenti LibreOffice.
Alcuni metodi sono generici per tutti i tipi di documenti e sono ereditati dal modulo SF_Document, altri metodi invece sono specifici per i documenti Writer e sono definiti nel modulo SF_Writer.
Prima di usare il servizio Writer è necessario caricare o importare le librerie ScriptForge:
Il servizio Writer è strettamente collegato al servizio UI della libreria ScriptForge. Di seguito sono riportati alcuni esempi di come il servizio Writer può essere invocato.
Il frammento di codice sottostante crea l'istanza a un servizio Writer che corrisponde al documento Writer attivo.
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1") ' Default = ActiveWindow
  Un altro modo di creare un'istanza del servizio Writer è quello di usare il servizio UI. Nell'esempio seguente, viene creato un nuovo documento Writer e oDoc è un'istanza del servizio Writer:
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateDocument("Writer")
  Oppure usando il metodo OpenDocument del servizio UI:
    Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")
  È anche possibile istanziare il servizio Writer usando il metodo CreateScriptService:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")
  Nell'esempio sopra riportato, "MyFile.ods" è il nome della finestra di apertura di un documento. Se questo argomento non è fornito, viene considerata la finestra attiva.
Si raccomanda di liberare le risorse dopo l'uso:
    Set oDoc = oDoc.Dispose()
  Tuttavia, se il documento è stato chiuso usando il metodo CloseDocument, diventa superfluo liberare risorse con il comando descritto sopra.
    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()
  L'uso del prefisso "SFDocuments." nella chiamata al servizio è opzionale.
| Elenco dei metodi del servizio Writer | ||
|---|---|---|
A seconda dei parametri forniti, questo metodo restituirà:
Una matrice con indice a partire da zero (o una tupla in Python) con i nomi di tutti i formulari contenuti nel documento (se l'argomento form è assente)
Un'istanza del servizio SFDocuments.Form che rappresenta il formulario specificato come argomento.
svc.Forms(): str[0..*]
svc.Forms(form: str = ''): svc
svc.Forms(form: int): svc
form: il nome o l'indice corrispondente a un formulario memorizzato nel documento. Se l'argomento è assente, il metodo restituirà un elenco con i nomi di tutti i formulari disponibili nel documento.
Negli esempi seguenti la prima riga ottiene il nome di tutti i formulari presenti nel documento e la seconda riga recupera l'oggetto Form del formulario chiamato "Form_A".
    Set FormNames = oDoc.Forms()
    Set FormA = oDoc.Forms("Form_A")
  
    form_names = doc.Forms()
    form_A = doc.Forms("Form_A")
  Questo metodo carica, da un file chiuso, tutti gli stili che appartengono a una o più famiglie di stili, importandoli nel documento corrente. Quest'ultimo deve essere un documento di Calc o di Writer.
Vengono sempre importati assieme:
gli stili di paragrafo (ParagraphStyles) e di carattere (CharacterStyles)
gli stili di elenco numerato (NumberingStyles) e di elenco puntato (ListStyles)
Restituisce True se gli stili sono stati importati correttamente.
svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool
filename: il file da cui caricare gli stili in notazione FileSystem. Si presuppone che il file sia dello stesso tipo del documento corrente.
families: una delle famiglie di stili presenti nel documento corrente, in formato stringa che distingue tra lettere minuscole e maiuscole o una matrice di stringhe di questo tipo. Lasciare vuoto questo argomento per importare tutte le famiglie.
overwrite: se impostato a True, gli stili correnti possono essere sovrascritti (il valore predefinito è False).
    oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)
  
    doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)
  Invia i contenuti del documento alla stampante. La stampante può essere impostata in precedenza come predefinita, dall'utente o dal metodo SetPrinter del servizio Document. Restituisce True se eseguito correttamente.
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: le pagine da stampare in formato stringa, come avviene nell'interfaccia utente. Esempio: "1-4;10;15-18". Predefinito = tutte le pagine
copies: il numero di copie, il valore predefinito è 1.
printbackground: se impostato su True (predefinito) stampa l'immagine di sfondo.
printblankpages: se è impostato su False (predefinito), omette le pagine bianche.
printevenpages: se impostato su True (predefinito) stampa le pagine pari.
printoddpages: se impostato su True (predefinito) stampa le pagine dispari.
printimages: se impostato su True (predefinito) stampa le immagini.
      oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)
  
    doc.PrintOut(printblankpages = True, copies = 3)