Contenuto

# Servizio SFDocuments.Writer

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.

## Invocazione del servizio

Prima di usare il servizio Writer è necessario caricare o importare le librerie ScriptForge:

• Le macro in Basic richiedono il caricamento della libreria ScriptForge usando la seguente istruzione:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Gli script in Python richiedono un'importazione dal modulo scriptforge:
from scriptforge import CreateScriptService

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.

##### In Basic

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.

##### 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()

L'uso del prefisso "SFDocuments." nella chiamata al servizio è opzionale.

## Definizioni

## Proprietà

## Metodi

Elenco dei metodi del servizio Writer
Forms | ImportStylesFromFile | PrintOut

## Forms

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.

Questo metodo è applicabile solo ai documenti di Writer. I documenti di Calc e Base dispongono di un proprio metodo Forms rispettivamente nei servizi Calc e Base.

### Sintassi:

svc.Forms(): str[0..*]

svc.Forms(form: str = ''): svc

svc.Forms(form: int): svc

### Parametri:

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.

### Esempio:

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

##### 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

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.

### Sintassi:

svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool

### Parametri:

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

### Esempio:

##### In Basic

        oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)

##### In Python

        doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)

## PrintOut

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.

### Sintassi:

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

### Parametri:

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.

### Esempio:

##### In Basic

          oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)

##### In Python

        doc.PrintOut(printblankpages = True, copies = 3)

Tutte le routine e gli identificatori Basic di ScriptForge che iniziano con un carattere di sottolineatura "_" sono riservati per uso interno. Non è previsto il loro utilizzo nelle macro in Basic o negli script in Python.

Argomenti correlati

Servizio SFDocuments.Document

Servizio ScriptForge.UI