Servizio SFDocuments.Document

La libreria SFDocuments fornisce metodi e proprietà per agevolare la gestione e la modifica dei documenti di LibreOffice.

I metodi applicabili a tutti i tipi di documento (documenti di testo, fogli elettronici, presentazioni, ecc.) sono forniti dal servizio SFDocuments.Document. Alcuni esempi sono:

warning

Le proprietà, i metodi e gli argomenti contrassegnati con (*) NON sono applicabili ai documenti di Base.


I metodi e le proprietà specifici di un determinato componente di LibreOffice sono memorizzati in servizi separati, come SFDocuments.SF_Calc e SFDocuments.SF_Base.

Anche se il linguaggio Basic non offre l'ereditarietà tra le classi di oggetti, gli ultimi servizi possono essere considerati come sottoclassi del servizio SFDocuments.Document. Queste sottoclassi possono invocare le proprietà e i metodi descritti di seguito.

Invocazione del servizio

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

note

• 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


Di seguito sono riportate tre varianti del modo in cui è possibile invocare il servizio Document.

In Basic

Usando il metodo getDocument dal servizio ScriptForge.UI:


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.GetDocument("Untitled 1")
  

In alternativa è possibile usare i metodi CreateDocument e OpenDocument dal servizio UI.


    Set oDocA = ui.CreateDocument("Calc")
    Set oDocB = ui.OpenDocument("C:\Documents\MyFile.odt")
  

Usando il nome di una finestra se il documento è già aperto.


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "Untitled 1") 'Default = ActiveWindow
  

Usando il documento a cui fa riferimento ThisComponent. Questo è particolarmente utile quando si esegue una macro all'interno dell'IDE Basic.


    Dim oDoc As Object
    Set oDoc = CreateScriptService("Document", ThisComponent)
  

Da una macro attivata da un evento del documento.


    Sub RunEvent(ByRef poEvent As Object)
        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.DocumentEvent", poEvent)
        ' (...)
    End Sub
  
note

Il servizio Document è strettamente collegato ai servizi UI e FileSystem.


Eccetto quando il documento è stato chiuso da un programma usando il metodo CloseDocument (che lo rende superfluo), si consiglia di liberare le risorse dopo l'uso:


    Set oDoc = oDoc.Dispose()
  
In Python

    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.GetDocument("Untitled 1")
    # (...)
    doc.Dispose()
  

    docA = ui.CreateDocument("Calc")
    docB = ui.OpenDocument("C:\Documents\MyFile.odt")
  

    doc = CreateScriptService("SFDocuments.Document", "Untitled 1")
  

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
  

    def RunEvent(event)
        doc = CreateScriptService("SFDocuments.DocumentEvent", Event)
        # (...)
  
tip

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


Proprietà

Nome

Sola lettura

Tipo

Descrizione

CustomProperties (*)

No

Dictionary service

Restituisce un'istanza dell'oggetto ScriptForge.Dictionary. Dopo il suo aggiornamento, può essere passata nuovamente alla proprietà affinché aggiorni in documento.
I singoli elementi del dizionario possono essere stringhe, numeri, date (di Basic) o elementi com.sun.star.util.Duration.

Description (*)

No

String

Fornisce accesso alla proprietà "Description" del documento (chiamata anche "Comments")

DocumentProperties (*)

Dictionary service

Restituisce un oggetto ScriptForge.Dictionary contenente tutte le voci. Sono comprese le statistiche del documento. Si noti che queste sono specifiche del tipo di documento. Per esempio, un documento di Calc comprende una voce "CellCount". Altri documenti no.

DocumentType

String

Un valore in formato stringa con il tipo di documento ("Base", "Calc", "Writer", ecc.)

ExportFilters (*)

String array

Restituisce un elenco con i nomi dei filtri di esportazione applicabili al documento corrente in formato di matrice di stringhe con indice a partire da zero. Sono restituiti anche i filtri usati sia per l'importazione che per l'esportazione.

FileSystem (*)

String

Restituisce una stringa con l'URL del percorso che punta alla radice del file system virtuale del documento. Usare il servizio FileSystem per visualizzare i suoi contenuti, così come per creare, aprire e leggere i file contenuti al suo interno.

Fare riferimento a questa pagina della guida in linea per saperne di più su come accedere e manipolare le cartelle e i file nel file system virtuale di un file di LibreOffice.

ImportFilters (*)

String array

Restituisce un elenco con i nomi dei filtri di importazione applicabili al documento corrente in formato di matrice di stringhe con indice a partire da zero. Sono restituiti anche i filtri usati sia per l'importazione che per l'esportazione.

IsBase
IsCalc
IsDraw
IsFormDocument
IsImpress
IsMath
IsWriter

Boolean

Solamente una di queste proprietà è True per un determinato documento.

Keywords (*)

No

String

Fornisce l'accesso alla proprietà Keywords del documento. Rappresentata come un elenco di parole chiave separate da virgola

Readonly (*)

Boolean

True se il documento è effettivamente in modalità sola lettura

StyleFamilies (*)

String array

Elenco di tutte le famiglie di stili disponibili. Applicabile a tutti i tipi di documenti tranne a quelli di Base.

Subject (*)

No

String

Fornisce accesso alla proprietà Subject del documento.

Title (*)

No

String

Fornisce accesso alla proprietà Title del documento.

XComponent

Oggetto UNO

L'oggetto UNO com.sun.star.lang.XComponent o com.sun.star.comp.dba.ODatabaseDocument che rappresenta il documento.

XDocumentSettings (*)

Oggetto UNO

Un oggetto UNO com.sun.star.XXX.DocumentSettings, nel quale XXX è sheet, text, drawing o presentation, che fornisce l'accesso alle proprietà UNO interne, specifiche per quel tipo di documento.


Esempio:

In Basic

L'esempio sottostante stampa tutte le proprietà di un documento. Si noti che l'oggetto oDoc restituito dal metodo UI.OpenDocument è un oggetto SFDocuments.Document.


    Dim ui as Variant : Set ui = CreateScriptService("UI")
    Dim oDoc as Object
    Set oDoc = ui.OpenDocument("C:\Documents\MyFile.ods")
    Dim propDict as Object
    Set propDict = oDoc.DocumentProperties
    Dim keys as Variant : propKeys = propDict.Keys
    Dim k as String, strProp as String
    For Each k In propKeys
        strProp = strProp & k & ": " & propDict.Item(k) & CHR$(10)
    Next k
    MsgBox strProp
    oDoc.CloseDocument()
  
In Python

Per accedere alle proprietà del documento in uno script in Python l'utente deve accedervi direttamente usando i loro nomi, come mostrato di seguito:


    doc = ui.GetDocument(r"C:\Documents\MyFile.ods")
    msg = doc.Title + '\n' + doc.Description + '\n' + doc.Keywords
    bas = CreateScriptService("Basic")
    bas.MsgBox(msg)
    doc.CloseDocument()
  

Elenco dei metodi del servizio Document

Activate
CloseDocument
CreateMenu
DeleteStyles
Echo
ExportAsPDF

ImportStylesFromFile
PrintOut
RemoveMenu
RunCommand
Save
SaveAs

SaveCopyAs
SetPrinter
Style
Toolbars
XStyle


Activate

Restituisce True se il documento può essere attivato. Altrimenti, non c'è alcuna modifica all'interfaccia utente. È equivalente al metodo Activate del servizio UI.

Questo metodo è utile quando si rende necessario portare in primo piano un documento ridotto a icona o nascosto.

Sintassi:

svc.Activate(): bool

Esempio:

L'esempio sottostante considera il file "My_File.ods" già aperto ma non attivo.

In Basic

    Dim oDoc As Object
    Set oDoc = CreateScriptService("Document", "MyFile.ods")
    oDoc.Activate()
  
In Python

    doc = CreateScriptService("Document", "MyFile.ods")
    doc.Activate()
  
tip

Tenete presente che potete invocare il servizio Document passando a CreateScriptService sia "Document" sia "SFDocuments.Document"


CloseDocument

Chiude il documento. Se il documento è già chiuso, indipendentemente da come è stato chiuso, questo metodo non ha effetto e restituisce False.

Il metodo restituirà False anche se l'utente non accetta la sua chiusura.

Restituisce True se il documento è stato chiuso correttamente.

Sintassi:

svc.CloseDocument(saveask: bool = True): bool

Parametri:

saveask: se è True (predefinito), l'utente viene invitato a confermare se le modifiche devono essere salvate su disco. Questo argomento viene ignorato se il documento non è stato modificato.

Esempio:

In Basic

    If oDoc.CloseDocument(True) Then
        ' ...
    End If
  
In Python

    if doc.CloseDocument(True):
        # ...
  

CreateMenu

Crea una nuova voce nella barra dei menu nella finestra del documento indicata.

Questo metodo restituisce un'istanza del servizio SFWidgets.Menu.

note

Il menu creato è disponibile solamente durante la sessione corrente di LibreOffice e non viene salvato né nel documento, né nelle impostazioni globali del programma. Perciò la chiusura della finestra del documento farà scomparire il menu. Questo riapparirà solo quando sarà eseguita di nuovo la macro che crea il menu.


Sintassi:

svc.CreateMenu(menuheader: str, [before: any], submenuchar: str = ">"): svc

Parametri:

menuheader: il nome del livello superiore del nuovo menu.

before: il nome (come stringa) o la posizione (come intero a partire da 1) di un menu esistente prima del quale sarà posizionato il nuovo menu. Se non viene definito alcun valore per questo argomento, il menu sarà creato nell'ultima posizione della barra dei menu.

submenuchar: il delimitatore usato per creare strutture di menu ad albero quando si richiamano metodi come AddItem del servizio Menu. Il valore predefinito è ">".

Esempio:

In Basic

    Dim oDoc as Object, oMenu as Object
    Set oDoc = CreateScriptService("Document")
    Set oMenu = oDoc.CreateMenu("Mio Menu")
    With oMenu
        ' Aggiunge elementi al menu
        .AddItem("Item A")
        .AddItem("Item B")
        ' ...
        ' Dopo aver creato il menu, l'istanza del servizio può essere eliminata
        .Dispose()
    End With
  
In Python

    doc = CreateScriptService("Document")
    menu = doc.CreateMenu("Mio Menu")
    menu.AddItem("Item A")
    menu.AddItem("Item B")
    # ...
    menu.Dispose()
  
tip

Per saperne di più su come creare/eliminare menu nelle finestre dei documenti di LibreOffice, fare riferimento alla pagina SFWidgets.Menu della guida in linea.


DeleteStyles

Elimina un singolo stile o la matrice di stili, indicati con i loro nomi, da una specifica famiglia di stili. Solo gli stili definiti dall'utente possono essere eliminati, gli stili incorporati vengono ignorati. Si applica a tutti i tipi di documento, ad eccezione di quelli di Base ed ai FormDocument.

Sintassi:

svc.DeleteStyles(family: str, stylelist: str[1..*])

Parametri:

family: una delle famiglie di stili presenti nel documento corrente, in formato stringa che fa distinzione tra lettere minuscole e maiuscole. I nome delle famiglie possono essere ottenuti usando la proprietà StyleFamilies.

stylelist: il nome di un singolo stile o una matrice con i nomi di stili. I nomi degli stili possono essere localizzati o no. StylesList solitamente è il risultato dell'esecuzione di un metodo Styles().

Esempio:

In Basic

    ' Rimozione degli stili di paragrafo non utilizzati
    Const family = "ParagraphStyles"
    aList = oDoc.Styles(family, used := False, userDefined := True)
    oDoc.DeleteStyles(family, aList)
  
In Python

    # Rimozione degli stili in base a un prefisso
    a_list = doc.Styles('ParagraphStyles', namepattern = "Py*")
    doc.Styles('ParagraphStyles', a_list)
  

Echo

Sospende l'aggiornamento dell'interfaccia grafica (UI) durante l'esecuzione di una macro. Facoltativamente, il puntatore del mouse può essere modificato in una clessidra mentre gli aggiornamenti dell'interfaccia grafica sono sospesi.

tip

Questo metodo può fornire alcuni benefici alle prestazioni delle macro che eseguono numerose operazioni che comporterebbero aggiornamento della UI.


Sintassi:

svc.Echo(echoon: bool = True, hourglass: bool = False)

Parametri:

echoon: specificare False per sospendere gli aggiornamenti della UI. Il valore predefinito è True, che ne abilita l'aggiornamento in tempo reale.

hourglass: specificare True per trasformare il puntatore del mouse in una clessidra (predefinito = False).

note

Lo spostamento del puntatore del mouse dopo la sua modifica in clessidra può comportare la sua trasformazione in un puntatore diverso a seconda del nuovo sfondo.


Esempio:

In Basic

    ' Sospensione degli aggiornamenti dell'interfaccia grafica (UI) e modifica del puntatore del mouse in una clessidra
    oDoc.Echo(EchoOn := False, HourGlass := True)
    ' Altri comandi della macro
    ' ...
    ' Ripristino degli aggiornamenti dell'interfaccia grafica e del puntatore del mouse
    oDoc.Echo()
  
In Python

    doc.Echo(echoon = False, hourglass = True)
    ...
    doc.Echo()
  

ExportAsPDF

Esporta direttamente il documento in un file PDF, nel percorso specificato. Se il file è creato correttamente restituisce True.

Le opzioni di esportazione possono essere impostate sia manualmente, usando la finestra di dialogo File - Esporta come - Esporta nel formato PDF, sia chiamando i metodi GetPDFExportOptions e SetPDFExportOptions del servizio Session.

Sintassi:

svc.ExportAsPDF(filename: str, overwrite: bool = False, opt pages: str, opt password: str, opt watermark: str): bool

Parametri:

filename: il nome completo del percorso e del file PDF da creare. Deve conformarsi alla notazione SF_FileSystem.FileNaming.

overwrite: specifica se il file di destinazione può essere sovrascritto (predefinito = False). Se overwrite è impostato su False e il file di destinazione esiste già, si verificherà un errore.

pages: stringa che specifica le pagine da esportare. Questo argomento usa la stessa notazione della finestra di dialogo File - Esporta come - Esporta nel formato PDF.

password: specifica una password per aprire il file PDF.

watermark: testo da usare come filigrana nel file PDF che sarà visualizzato su ogni pagina del PDF risultante.

Esempio:

In Basic

L'esempio seguente esporta il documento corrente come file PDF, definisce una password e sovrascrive il file di destinazione, se questo esiste già.


    oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf", Password := "1234", Overwrite := True)
  

Il frammento di codice sottostante recupera le opzioni di esportazione in PDF correnti e le usa per creare il file PDF.


    Dim exportSettings as Object, oSession as Object
    oSession = CreateScriptService("Session")
    exportSettings = oSession.GetPDFExportOptions()
    ' Imposta a True l'opzione per esportare i commenti come note del PDF
    exportSettings.ReplaceItem("ExportNotes", True)
    oSession.SetPDFExportOptions(exportSettings)
    oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")
  
In Python

    doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf", password = "1234", overwrite = True)
  

    session = CreateScriptService("Session")
    exportSettings = oSession.GetPDFExportOptions()
    exportSettings.ReplaceItem("ExportNotes", True)
    session.SetPDFExportOptions(exportSettings)
    doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf")
  

ImportStylesFromFile

Questo metodo carica, da un file chiuso, tutti gli stili che appartengono a una o più famiglie di stili nel documento corrente. Quest'ultimo deve essere un documento di Calc o di Writer.

Vengono sempre importati assieme:

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. Predefinito = all families (tutte le famiglie).

overwrite: se impostato su True, gli stili correnti possono essere sovrascritti (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

Questo metodo invia i contenuti del documento alla stampante predefinita o a quella impostata dal metodo SetPrinter.

Restituisce True se il documento è stato stampato correttamente.

Sintassi:

svc.PrintOut(pages: str = "", copies: num = 1): bool

Parametri:

pages: le pagine da stampare in formato stringa, come nell'interfaccia utente. Esempio "1-4;10;15-18". L'impostazione predefinita è tutte le pagine.

copies: il numero di copie. Il valore predefinito è 1.

Esempio:

In Basic

    If oDoc.PrintOut("1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
In Python

    if doc.PrintOut(copies=3, pages='45-88'):
        # ...
  

RemoveMenu

Elimina un menu di livello superiore dalla barra dei menu della finestra del documento specificata.

Restituisce True se il menu specificato può essere eliminato. Se questo non esiste, il metodo restituisce False.

note

È possibile usare questo metodo per eliminare qualunque voce di menu dalla finestra del documento, compresi i menu predefiniti. Però, nessuna di queste modifiche alla barra dei menu viene salvata nelle impostazioni del documento o del programma. Per ripristinare la barra dei menu alle sue impostazioni predefinite, semplicemente chiudere e riaprire la finestra del documento.


Sintassi:

svc.RemoveMenu(menuheader: str): bool

Parametri:

menuheader: il nome del menu di livello superiore da eliminare.

Esempio:

In Basic

    Dim oDoc as Object
    Set oDoc = CreateScriptService("Document")
    oDoc.RemoveMenu("Mio Menu")
  
In Python

    doc = CreateScriptService("Document")
    doc.RemoveMenu("Mio Menu")
  
tip

Per saperne di più su come creare/eliminare menu nelle finestre dei documenti di LibreOffice, fare riferimento alla pagina SFWidgets.Menu della guida in linea.


RunCommand

Esegue un comando UNO sulla finestra del documento associata all'istanza del servizio. Alcuni comandi tipici sono: Save, SaveAs, ExportToPDF, Undo, Copy, Paste, ecc.

Per eseguire comandi, il documento non deve necessariamente essere attivo.

È possibile eseguire i comandi con o senza argomenti. Gli argomenti non vengono validati prima dell'esecuzione del comando. Se il comando o i suoi argomenti non sono validi, non accadrà nulla.

tip

Per un elenco completo dei comandi UNO che è possibile eseguire in LibreOffice, fare riferimento alla pagina del Wiki Development/DispatchCommands.


Sintassi:

svc.RunCommand(command: str, [args: any])

Parametri:

command: stringa con distinzione tra lettere minuscole e maiuscole contenente il comando UNO. L'inclusione del prefisso ".uno" è facoltativa. La correttezza del comando non viene verificata. Se non succede nulla dopo la sua chiamata, probabilmente il comando è sbagliato.

args: per ciascun argomento da passare al comando, specificare una coppia contenente il nome dell'argomento e il valore.

Esempio:

In Basic

L'esempio seguente esegue il comando SelectData in un file di Calc denominato "MyFile.ods", che ha come risultato la selezione dell'area di dati in base alle celle correntemente selezionate. Fare attenzione che questo comando non richiede argomenti.


    Set oDoc = CreateScriptService("Document", "MyFile.ods")
    oDoc.RunCommand("SelectData")
  

Qui sotto si riporta un esempio che esegue il comando UNO ReplaceAll passando i valori per i suoi argomenti SearchString e ReplaceString. L'esecuzione di questo comando sostituirà tutte le occorrenze della stringa "abc" con "ABC", nel foglio corrente.


    ' Argomenti passati al comando:
    ' SearchString  = "abc"
    ' ReplaceString = "ABC"
    oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")
  

Prestare attenzione che chiamando il comando ReplaceAll senza argomenti si aprirà la finestra di dialogo Trova e sostituisci.

In Python

    doc = CreateScriptService("Document", "MyFile.ods")
    doc.RunCommand("SelectData")
  

    doc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")
  

In Python è anche possibile anche chiamare RunCommand usando gli argomenti con parole chiave:


    doc.RunCommand(".uno:ReplaceAll", SearchString = "abc", ReplaceString = "ABC")
  
tip

Ogni componente di LibreOffice dispone di un proprio insieme di comandi. Un modo semplice per impararli è quello di accedere a Strumenti - Personalizza - Tastiera. Quando si posiziona il puntatore del mouse sopra una funzione nell'elenco Funzioni comparirà un suggerimento col comando UNO corrispondente.


Save

Memorizza il documento nella posizione del file da cui è stato caricato. Il metodo viene ignorato se il documento non è stato modificato.

Restituisce False se il documento non può essere salvato. Viene generato un errore se il file è aperto in sola lettura o se il nuovo file non è stato ancora salvato.

Per eseguire questo metodo non è necessario che il documento in questione sia attivo.

Sintassi:

svc.Save(): bool

Esempio:

In Basic

    If Not oDoc.Save() Then
        ' ...
    End If
  
In Python

    if not doc.Save():
        # ...
  

SaveAs

Memorizza il documento in un file nella posizione specificata. La nuova posizione diventa il nuovo nome di file sul quale verranno applicate le chiamate al metodo "Save" semplice.

Restituisce False se il documento non può essere salvato. Viene sollevato un errore se la sovrascrittura della destinazione viene rifiutata o quando per la destinazione è impostato l'attributo di sola lettura.

Il documento in questione non deve essere attivo per poter eseguire questo metodo.

Sintassi:

svc.SaveAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

Parametri:

filename: una stringa contenente il nome del file da usare. Deve rispettare la notazione SF_FileSystem.FileNaming.

overwrite: se è True, il file di destinazione può essere sovrascritto (predefinito = False).

password (*): una stringa priva di spazi con la quale proteggere il documento.

filtername (*): il nome di un filtro da usare per salvare il documento. Se questo argomento viene passato, allora il filtro deve esistere.

filteroptions (*): una stringa facoltativa delle opzioni associate al filtro.

Esempio:

In Basic

    oDoc.SaveAs("C:\Documents\NewCopy.odt", overwrite := True)
  
In Python

    doc.SaveAs(r"C:\Documents\NewCopy.odt", overwrite = True)
  

SaveCopyAs

Memorizza una copia o esporta il documento nel percorso specificato del file. Il file nella posizione corrente rimane immutato.

Restituisce False se il documento non può essere salvato. Viene sollevato un errore se la sovrascrittura della destinazione viene rifiutata o quando per la destinazione è impostato l'attributo di sola lettura.

Non è necessario che il documento in questione sia attivo per eseguire questo metodo.

Sintassi:

svc.SaveCopyAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

Parametri:

filename: una stringa contenente il nome del file da usare. Deve rispettare la notazione SF_FileSystem.FileNaming.

overwrite: Se è True, il file di destinazione può essere sovrascritto (predefinito = False).

password (*): una stringa priva di spazi con la quale proteggere il documento.

filtername (*): Il nome di un filtro da usare per salvare il documento. Se questo argomento viene passato, allora il filtro deve esistere.

filteroptions (*): una stringa facoltativa delle opzioni associate al filtro.

Esempio:

In Basic

    oDoc.SaveCopyAs("C:\Documents\Copy2.odt", Overwrite := True)
  
In Python

    doc.SaveCopyAs(r"C:\Documents\Copy2.odt", overwrite = True)
  

SetPrinter

Definisce le opzioni di stampa per il documento.

Il metodo restituisce True se eseguito correttamente.

Sintassi:

svc.SetPrinter(opt printer: str, opt orientation: str, paperformat: str): bool

Parametri:

printer: il nome della coda della stampante su cui stampare. Se assente, viene impostata la stampante predefinita.

orientation: uno tra PORTRAIT (verticale) o LANDSCAPE (orizzontale). Se non è presente, le impostazioni della stampante restano immutate.

paperformat: specifica il formato della carta come stringa il cui valore può essere A3, A4, A5, LETTER, LEGAL o TABLOID. Se assente, non viene cambiato.

Esempio:

In Basic

    oDoc.SetPrinter(Orientation := "PORTRAIT")
  
In Python

    doc.SetPrinter(paperformat='TABLOID')
  

Styles

Recupera un elenco di stili che rispettano un criterio composto opzionale, la matrice restituita può essere vuota. Si applica a tutti i tipi di documento, ad eccezione di quelli di Base.

Sintassi:

svc.Styles(family, opt namepattern: str, opt used: bool, opt userdefined: bool, opt parentstyle: str, opt category: str): str[0..*])

family: una delle famiglie di stili presenti nel documento corrente, in formato stringa che fa distinzione tra lettere minuscole e maiuscole. I nome delle famiglie possono essere ottenuti usando la proprietà StyleFamilies.

category: una stringa, che non distingue tra lettere minuscole e maiuscole, tra: TEXT, CHAPTER, LIST, INDEX, EXTRA, HTML. Per i loro rispettivi significati, fare riferimento al paragrafo categoria degli stili nella documentazione delle API.

Questo argomento viene ignorato quando Family è diversa da "ParagraphStyles".

namepattern: un filtro dei nomi degli stili, in formato stringa di riferimento che fa distinzione tra lettere minuscole e maiuscole. I nome comprendono quelli interni e localizzati.

I caratteri jolly ammessi sono:

parentstyle: quando è presente, vengono conservati solo i nomi, localizzati o no, degli stili derivanti dallo stile genitore specificato.

used: se impostato su True, lo stile deve essere in uso nel documento, quando è assente l'argomento viene ignorato.

userdefined: se impostato su True, lo stile deve essere stato aggiunto dall'utente, indifferentemente se nel documento o nel suo modello, quando è assente, l'argomento viene ignorato.

Esempio:

In Basic

    Dim vStyles As Variant
    vStyles = oDoc.Styles("ParagraphStyles") 'Tutti gli stili della famiglia
    vStyles = oDoc.Styles("ParagraphStyles", "T*") 'Titolo, Titolo 1, ...
    vStyles = oDoc.Styles("ParagraphStyles", Used := False, UserDefined := True) ' Tutti gli stili definiti dall'utente che non sono in uso
    vStyles = oDoc.Styles("ParagraphStyles", ParentStyle := "Standard") ' Tutti gli stili derivati dallo 'Stile del paragrafo predefinito'
  
In Python

    vStyles = doc.Styles('ParagraphStyles') #Tutti gli stili della famiglia
    vStyles = doc.Styles('ParagraphStyles', 'T*') #Titolo, Titolo 1, ...
    vStyles = doc.Styles('ParagraphStyles', Used = False, UserDefined = True) # Tutti gli stili definiti dall'utente che non sono in uso
    vStyles = doc.Styles('ParagraphStyles', ParentStyle = 'Standard") # Tutti gli stili derivati dallo "Stile del paragrafo predefinito"
  

Toolbars

Questo metodo restituisce un elenco dei nomi delle barre degli strumenti disponibili nel documento corrente o un'istanza del servizio SFWidgets.Toolbar.

Sintassi:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

Parametri:

ToolbarName: il nome comune di una delle barre degli strumenti disponibili.

Esempio:

In Basic

    Dim oToolbar As Object
    Set oToolbar = oDoc.Toolbars("myToolbar")
  
In Python

    a_list = doc.Toolbars()
  

XStyles

Questo metodo restituisce la rappresentazione UNO di un determinato stile per tutti i tipi di documento, ad eccezione di quelli di Base. Nothing è restituito quando il nome dello stile StyleName non esiste nella famiglia Family specificata.

Sintassi:

svc.XStyles(family: str, stylename: str): uno

Parametri:

family: una delle famiglie di stili presenti nel documento corrente, in formato stringa che fa distinzione tra lettere minuscole e maiuscole. I nome delle famiglie possono essere ottenuti usando la proprietà StyleFamilies.

stylename: uno degli stili presenti nella famiglia specificata, in formato di stringa che distingue tra lettere minuscole e maiuscole. Il nome dello stile StyleName può essere localizzato o meno.

Esempio:

In Basic

    Dim oStyle As Object
    Set oStyle = oDoc.XStyle("ParagraphStyle", "Heading 2")
  
In Python

    oStyle = doc.XStyle('ParagraphStyle', 'Heading 2')
  
warning

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.


Sosteneteci!