Service SFDocuments.Document

La bibliothèque SFDocuments fournit des méthodes et des propriétés pour faciliter la gestion et la manipulation des documents LibreOffice.

Les méthodes applicables à tous les types de documents (Documents Textes, Classeurs, Présentations, etc.) sont fournies par le service SFDocuments.Document. Certains exemples sont :

warning

Les propriétés, méthodes ou arguments marqués d'un (*) ne sont PAS applicables aux documents Base.


Les méthodes et propriétés spécifiques à certains composants LibreOffice sont stockées dans des services distincts, tels que SFDocuments.SF_Calc et SFDocuments.SF_Base.

Bien que le langage Basic ne propose pas d'héritage entre classes d'objets, ces derniers services peuvent être considérés comme des sous-classes du service SFDocuments.Document. Ces sous-classes peuvent invoquer les propriétés et les méthodes décrites ci-dessous.

Invocation du service

Avant d'utiliser le service Document, la bibliothèque ScriptForge doit être chargée ou importée :

note

‚ÄĘ Les macros Basic n√©cessitent de charger la biblioth√®que ScriptForge √† l'aide de l'instruction suivante¬†:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‚ÄĘ Les scripts Python n√©cessitent un import depuis le module scriptforge¬†:
from scriptforge import CreateScriptService


Vous trouverez ci-dessous trois variantes de la façon dont le service Document peut être appelé.

En Basic :

Utilisation de la méthode getDocument du service ScriptForge.UI :


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

Vous pouvez également utiliser les méthodes CreateDocument et OpenDocument du service UI.


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

Utiliser un nom de fenêtre si le document est déjà ouvert.


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

En utilisant le document référencé par ThisComponent. Ceci est particulièrement utile lors de l'exécution d'une macro à partir de l'IDE Basic.


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

À partir d'une macro déclenchée par un événement de document.


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

Le service Document est étroitement lié aux services UI et FileSystem.


Sauf lorsque le document a été fermé par programme avec la méthode CloseDocument (c'est alors superflu), il est recommandé de libérer des ressources après utilisation :


    Set oDoc = oDoc.Dispose()
  
En 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'utilisation du préfixe "SFDocuments." lors de l'appel du service est facultative.


Propriétés

Nom

En lecture seule

Type

Description

CustomProperties (*)

Non

Dictionary service

Renvoie une instance d'objet ScriptForge.Dictionary. Après la mise à jour, peut être transmis à nouveau à la propriété pour mettre à jour le document.
Les √©l√©ments individuels du dictionnaire peuvent √™tre soit des cha√ģnes, des nombres, des dates (Basic) ou des √©l√©ments com.sun.star.util.Duration.

Description (*)

Non

String

Donne accès à la propriété Description du document (également appelée "Comments")

DocumentProperties (*)

Oui

Dictionary service

Renvoie un objet ScriptForge.Dictionary contenant toutes les entrées. Les statistiques du document sont incluses. Notez qu'elles sont spécifiques au type de document. Par exemple, un document Calc inclut une entrée "CellCount". D'autres documents ne les ont pas.

DocumentType

Oui

String

Valeur de cha√ģne avec le type de document ("Base", "Calc", "Writer", etc.)

ExportFilters (*)

Oui

String array

Renvoie une liste avec les noms de filtres d'export applicables au document actuel sous la forme d'une matrice de cha√ģnes de base z√©ro. Les filtres utilis√©s pour l'import/export sont √©galement renvoy√©s.

FileSystem (*)

Oui

String

Renvoie une cha√ģne avec le chemin URL vers la racine du syst√®me de fichiers virtuel du document. Utilisez le service FileSystem pour afficher son contenu, ainsi que pour cr√©er, ouvrir et lire les fichiers qui y sont stock√©s.

Reportez-vous à cette page d'aide pour en savoir plus sur l'accès et la manipulation des dossiers et des fichiers dans le système de fichiers virtuel d'un fichier LibreOffice.

ImportFilters (*)

Oui

String array

Renvoie une liste avec les noms de filtres d'import applicables au document actuel sous la forme d'une matrice de cha√ģnes de base z√©ro. Les filtres utilis√©s pour l'import/export sont √©galement renvoy√©s.

IsBase
IsCalc
IsDraw
IsFormDocument
IsImpress
IsMath
IsWriter

Oui

Boolean

Exactement une de ces propriétés est True pour un document donné.

Keywords (*)

Non

String

Donne accès à la propriété Keywords du document. Représenté sous la forme d'une liste de mots-clés séparés par des virgules

Readonly (*)

Oui

Boolean

True si le document est réellement en mode lecture seule

StyleFamilies (*)

Oui

String array

Liste des familles de styles disponibles. Applicable à tous les types de documents sauf Base.

Subject (*)

Non

String

Donne accès à la propriété Subject du document.

Title (*)

Non

String

Donne accès à la propriété Title du document.

XComponent

Oui

Objets UNO

L'objet UNO com.sun.star.lang.XComponent ou com.sun.star.comp.dba.ODatabaseDocument représentant le document.

XDocumentSettings (*)

Oui

Objet UNO

Un objet UNO com.sun.star.XXX.DocumentSettings - o√Ļ XXX est une feuille, un texte, un dessin ou une pr√©sentation - qui donne acc√®s aux propri√©t√©s internes UNO, sp√©cifiques au type de document.


Exemple :

En Basic :

L'exemple ci-dessous imprime toutes les propriétés d'un document. Notez que l'objet oDoc renvoyé par la méthode UI.OpenDocument est un objet 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()
  
En Python

Pour accéder aux propriétés du document dans un script Python, l'utilisateur doit y accéder directement en utilisant leurs noms, comme indiqué ci-dessous :


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

Liste des méthodes dans le service Document

Activate
CloseDocument
CreateMenu
DeleteStyles
Echo
ExportAsPDF

ImportStylesFromFile
PrintOut
RemoveMenu
RunCommand
Save
SaveAs

SaveCopyAs
SetPrinter
Style
Toolbars
XStyle


Activate

Renvoie True si le document peut être activé. Sinon, il n'y a aucun changement dans l'interface utilisateur active. Elle est équivalente à la méthode Activate du service UI.

Cette méthode est utile lorsque l'on doit donner le focus à un document réduit ou masqué.

Syntaxe :

svc.Activate(): bool

Exemple :

L'exemple ci-dessous considère que le fichier "My_File.ods" est déjà ouvert mais pas actif.

En Basic :

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

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

Gardez à l'esprit que vous pouvez invoquer le service Document en passant à CreateScriptService "Document" ou "SFDocuments.Document"


CloseDocument

Ferme le document. Si le document est déjà fermé, quelle que soit la façon dont le document a été fermé, cette méthode n'a aucun effet et renvoie False.

La méthode renverra également False si l'utilisateur refuse de le fermer.

Renvoie True si le document a été fermé avec succès.

Syntaxe :

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

Paramètres :

saveask : si True (par défaut), l'utilisateur est invité à confirmer si les modifications doivent être écrites sur le disque. Cet argument est ignoré si le document n'a pas été modifié.

Exemple :

En Basic :

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

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

CreateMenu

Crée une nouvelle entrée de menu dans la barre de menus d'une fenêtre de document donnée.

Cette méthode renvoie une instance du service SFWidgets.Menu.

note

Le menu cr√©√© n'est disponible que pendant la session LibreOffice en cours et n'est enregistr√© ni dans le document ni dans les param√®tres globaux de l'application. Par cons√©quent, la fermeture de la fen√™tre du document fera dispara√ģtre le menu. Il ne r√©appara√ģtra que lorsque la macro qui cr√©e le menu sera √† nouveau ex√©cut√©e.


Syntaxe :

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

Paramètres :

menuheader : le nom de niveau supérieur du nouveau menu.

before : Le nom (sous forme de cha√ģne) ou la position (sous forme d'entier commen√ßant √† 1) d'un menu existant avant lequel le nouveau menu sera plac√©. Si aucune valeur n'est d√©finie pour cet argument, le menu sera cr√©√© √† la derni√®re position dans la barre de menus.

submenuchar : le délimiteur utilisé pour créer des arborescences de menus lors de l'appel de méthodes en tant que AddItem à partir du service Menu. La valeur par défaut est ">".

Exemple :

En Basic :

    Dim oDoc as Object, oMenu as Object
    Set oDoc = CreateScriptService("Document")
    Set oMenu = oDoc.CreateMenu("My Menu")
    With oMenu
        'Ajoute un élément au menu
        .AddItem("Item A")
        .AddItem("Item B")
        ' ...
        ' Après avoir créé le menu, l'instance de service peut être supprimée
        .Dispose()
    End With
  
En Python

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

Reportez-vous à la page d'aide SFWidgets.Menu pour en savoir plus sur la création/suppression de menus dans les fenêtres de documents LibreOffice.


DeleteStyles

Supprime un style unique ou une matrice de styles donnés par leurs noms au sein d'une famille de styles spécifique. Seuls les styles définis par l'utilisateur peuvent être supprimés, les styles intégrés sont ignorés. Il s'applique à tous les types de documents sauf Base et FormDocument.

Syntaxe :

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

Paramètres :

family¬†: une des familles de styles pr√©sentes dans le document r√©el, sous forme de cha√ģne sensible √† la casse. Les noms de famille valides peuvent √™tre r√©cup√©r√©s √† l'aide de la propri√©t√© StyleFamilies.

stylelist¬†: un nom de style unique sous forme de cha√ģne ou de matrice de noms de styles. Les noms de styles peuvent √™tre traduits ou non. La StylesList est g√©n√©ralement le r√©sultat de l'ex√©cution d'une m√©thode Styles().

Exemple :

En Basic :

    ' Suppression des styles de paragraphe inutilisés
    Const family = "ParagraphStyles"
    aList = oDoc.Styles(family, used := False, userDefined := True)
    oDoc.DeleteStyles(family, aList)
  
En Python

    # Supprimer les styles selon un préfixe
    a_list = doc.Styles('ParagraphStyles', namepattern = "Py*")
    doc.Styles('ParagraphStyles', a_list)
  

Echo

Suspend les mises à jour de l’interface utilisateur (UI) pendant l’exécution d’une macro. En option, le pointeur de la souris peut être transformé en sablier pendant que les mises à jour de l'interface utilisateur sont suspendues.

tip

Cette méthode peut offrir certains avantages en termes de performances pour les macros qui effectuent de nombreuses opérations nécessitant des mises à jour de l’interface utilisateur.


Syntaxe :

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

Paramètres :

echoon : spécifiez False pour suspendre les mises à jour de l'interface utilisateur. La valeur par défaut est True, ce qui permet les mises à jour de l'interface utilisateur en temps réel.

hourglass : spécifiez True pour changer le pointeur de la souris en sablier (par défaut = False).

note

Déplacer le pointeur de la souris après qu'il se soit transformé en sablier peut le faire basculer vers un pointeur différent en fonction de son nouvel arrière-plan.


Exemple :

En Basic :

    ' Suspend les mises à jour de l'interface utilisateur et change le pointeur de la souris en sablier
    oDoc.Echo(EchoOn := False, HourGlass := True)
    'Autres commandes de macros
    ' ...
    ' Restaure les mises à jour de l'interface utilisateur et le pointeur de la souris
    oDoc.Echo()
  
En Python

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

ExportAsPDF

Exporte le document directement sous forme de fichier PDF à l'emplacement spécifié. Renvoie True si le fichier PDF a été créé avec succès.

Les options d'export peuvent √™tre d√©finies manuellement √† l'aide de la bo√ģte de dialogue Fichier - Exporter sous - Exporter au format PDF ou en appelant les m√©thodes GetPDFExportOptions et SetPDFExportOptions √† partir du Service Session.

Syntaxe :

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

Paramètres :

filename : chemin d'accès complet et nom de fichier du PDF à créer. Il doit suivre la notation SF_FileSystem.FileNaming.

overwrite : spécifie si le fichier de destination peut être écrasé (par défaut = False). Une erreur se produira si overwrite est défini sur False et que le fichier de destination existe déjà.

pages¬†: cha√ģne sp√©cifiant quelles pages seront export√©es. Cet argument utilise la m√™me notation que dans la bo√ģte de dialogue Fichier - Exporter sous - Exporter au format PDF.

password : spécifie un mot de passe pour ouvrir le fichier PDF.

watermark : texte à utiliser comme filigrane dans le fichier PDF, qui sera dessiné sur chaque page du PDF résultant.

Exemple :

En Basic :

L'exemple suivant exporte le document actuel sous forme de fichier PDF, définit un mot de passe et écrase le fichier de destination s'il existe déjà.


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

L'extrait de code ci-dessous récupère les options d'export PDF actuelles et les utilise pour créer le fichier PDF.


    Dim exportSettings as Object, oSession as Object
    oSession = CreateScriptService("Session")
    exportSettings = oSession.GetPDFExportOptions()
    ' Définit sur True l'option d'export des commentaires sous forme de notes PDF
    exportSettings.ReplaceItem("ExportNotes", True)
    oSession.SetPDFExportOptions(exportSettings)
    oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")
  
En 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

Cette méthode charge tous les styles appartenant à une ou plusieurs familles de styles d'un fichier fermé dans le document actif. Le document actif doit être un document Calc ou Writer.

Sont toujours importés ensemble :

Renvoie True si les styles ont été importés avec succès.

Syntaxe :

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

Paramètres :

filename : le fichier à partir duquel charger les styles dans la notation FileSystem. Le fichier est présumé être du même type de document que le document actif.

families¬†: une des familles de styles pr√©sentes dans le document actif, sous la forme d'une cha√ģne sensible √† la casse ou d'une matrice de telles cha√ģnes. Par d√©faut = toutes les familles.

overwrite : lorsque True, les styles réels peuvent être écrasés. La valeur par défaut est False.

Exemple :

En Basic :

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

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

PrintOut

Cette méthode envoie le contenu du document à l'imprimante par défaut ou à l'imprimante définie par la méthode SetPrinter.

Renvoie True si le document a été imprimé avec succès.

Syntaxe :

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

Paramètres :

pages¬†: les pages √† imprimer sous forme de cha√ģne, comme dans l'interface utilisateur. Exemple : "1-4;10;15-18". La valeur par d√©faut est toutes les pages.

copies : le nombre de copies. La valeur par défaut est 1.

Exemple :

En Basic :

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

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

RemoveMenu

Supprime un menu de niveau supérieur de la barre de menus d'une fenêtre de document donnée.

Renvoie True si le menu spécifié peut être supprimé. Si le menu spécifié n'existe pas, la méthode renvoie False.

note

Cette méthode peut être utilisée pour supprimer toute entrée de menu de la fenêtre du document, y compris les menus par défaut. Cependant, aucune de ces modifications dans la barre de menus n'est enregistrée dans le document ou dans les paramètres de l'application. Pour restaurer la barre de menus aux paramètres par défaut, fermez et rouvrez simplement la fenêtre du document.


Syntaxe :

svc.RemoveMenu(menuheader: str): bool

Paramètres :

menuheader : le nom de niveau supérieur du menu à supprimer.

Exemple :

En Basic :

    Dim oDoc as Object
    Set oDoc = CreateScriptService("Document")
    oDoc.RemoveMenu("My Menu")
  
En Python

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

Reportez-vous à la page d'aide SFWidgets.Menu pour en savoir plus sur la création/suppression de menus dans les fenêtres de documents LibreOffice.


RunCommand

Exécute une commande UNO sur la fenêtre de document associée à l'instance de service. Quelques commandes typiques sont : Save, SaveAs, ExportToPDF, Undo, Copy, Paste, etc.

Le document lui-même n'a pas besoin d'être actif pour pouvoir exécuter des commandes.

Les commandes peuvent être exécutées avec ou sans arguments. Les arguments ne sont pas validés avant l'exécution de la commande. Si la commande ou ses arguments ne sont pas valides, rien ne se passera.

tip

Pour une liste complète des commandes UNO pouvant être exécutées dans LibreOffice, reportez-vous à la page Wiki Development/DispatchCommands.


Syntaxe :

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

Paramètres :

commande¬†: cha√ģne sensible √† la casse contenant le nom de la commande UNO. L'inclusion du pr√©fixe ".uno¬†:" dans la commande est facultative. L'exactitude de la commande elle-m√™me n'est pas v√©rifi√©e. Si rien ne se passe apr√®s l'appel de la commande, la commande est probablement erron√©e.

args : pour chaque argument à transmettre à la commande, spécifiez une paire contenant le nom et la valeur de l'argument.

Exemple :

En Basic :

L'exemple suivant ex√©cute la commande SelectData dans un fichier Calc nomm√© "MyFile.ods", ce qui entra√ģnera la s√©lection de la zone de donn√©es en fonction de la cellule actuellement s√©lectionn√©e. Notez que cette commande ne n√©cessite aucun argument.


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

Vous trouverez ci-dessous un exemple qui ex√©cute la commande UNO ReplaceAll et transmet des valeurs pour ses arguments SearchString et ReplaceString. L'ex√©cution de cette commande remplacera toutes les occurrences de la cha√ģne "abc" par "ABC" dans la feuille actuelle.


    ' Arguments passés à la commande :
    ' SearchString  = "abc"
    ' ReplaceString = "ABC"
    oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")
  

Notez que l'appel de la commande ReplaceAll sans arguments ouvrira la bo√ģte de dialogue Rechercher et remplacer.

En Python

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

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

En Python, il est également possible d'appeler RunCommand en utilisant des arguments de mots-clés :


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

Chaque composant LibreOffice dispose de son propre jeu de commandes. Un moyen simple d'apprendre les commandes est d'aller dans Outils - Personnaliser - Clavier. Lorsque le curseur de la souris est positionn√© sur une fonction dans la liste Fonction, une info-bulle appara√ģt avec la commande UNO correspondante.


Save

Stocke le document à l'emplacement du fichier à partir duquel il a été chargé. La méthode est ignorée si le document n'a pas été modifié.

Renvoie False si le document n'a pas pu être enregistré. Une erreur est générée si le fichier est ouvert en lecture seule ou s'il s'agit d'un nouveau fichier qui n'a pas encore été enregistré.

Le document lui-même n'a pas besoin d'être actif pour exécuter cette méthode.

Syntaxe :

svc.Save(): bool

Exemple :

En Basic :

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

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

SaveAs

Stocke le document à l'emplacement de fichier donné. Le nouvel emplacement devient le nouveau nom de fichier sur lequel les appels simples à la méthode Save seront appliqués.

Renvoie False si le document n'a pas pu être enregistré. Une erreur est générée lorsque le remplacement de la destination est rejeté ou lorsque la destination a son attribut en lecture seule défini.

Le document lui-même n'a pas besoin d'être actif pour exécuter cette méthode.

Syntaxe :

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

Paramètres :

filename¬†: une cha√ģne contenant le nom du fichier √† utiliser. Il doit suivre la notation SF_FileSystem.FileNaming.

overwrite : si True, le fichier de destination peut être écrasé (par défaut = False).

password (*)¬†: Une cha√ģne sans espace pour prot√©ger le document.

filtername (*) : Le nom d'un filtre qui doit être utilisé pour enregistrer le document. Si cet argument est passé, le filtre doit exister.

filteroptions (*)¬†: une cha√ģne facultative d'options associ√©es au filtre.

Exemple :

En Basic :

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

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

SaveCopyAs

Stocke une copie ou exporte le document vers l'emplacement de fichier donné. L'emplacement réel est inchangé.

Renvoie False si le document n'a pas pu être enregistré. Une erreur est générée lorsque le remplacement de la destination est rejeté ou lorsque la destination a son attribut en lecture seule défini.

Le document lui-même n'a pas besoin d'être actif pour exécuter cette méthode.

Syntaxe :

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

Paramètres :

filename¬†: une cha√ģne contenant le nom du fichier √† utiliser. Il doit suivre la notation SF_FileSystem.FileNaming.

overwrite : si True, le fichier de destination peut être écrasé (par défaut = False).

password (*)¬†: Une cha√ģne sans espace pour prot√©ger le document.

filtername (*) : le nom d'un filtre qui doit être utilisé pour enregistrer le document. Si cet argument est passé, le filtre doit exister.

filteroptions (*)¬†: une cha√ģne facultative d'options associ√©es au filtre.

Exemple :

En Basic :

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

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

SetPrinter

Définit les options d'impression du document.

Renvoie True en cas de succès.

Syntaxe :

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

Paramètres :

printer : le nom de la file d'attente d'impression vers laquelle imprimer. En cas d'absence, l'imprimante par défaut est définie.

orientation : soit PORTRAIT ou PAYSAGE. Lorsque le paramètre est absent, reste inchangé par rapport aux paramètres de l'imprimante.

paperformat¬†: sp√©cifie le format du papier sous la forme d'une valeur de cha√ģne qui peut √™tre soit A3, A4, A5, LETTER, LEGAL ou TABLOID. Reste inchang√© en cas d'absence.

Exemple :

En Basic :

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

    doc.SetPrinter(paperformat='TABLOID')
  

Styles

Récupère une liste de styles correspondant à un critère composé facultatif, le tableau renvoyé peut être vide. Il s'applique à tous les types de documents sauf Base.

Syntaxe :

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

family¬†: une des familles de styles pr√©sentes dans le document r√©el, sous forme de cha√ģne sensible √† la casse. Les noms de famille valides peuvent √™tre r√©cup√©r√©s √† l'aide de la propri√©t√© StyleFamilies.

category¬†: une cha√ģne insensible √† la casse¬†: TEXT, CHAPTER, LIST, INDEX, EXTRA, HTML. Pour conna√ģtre leurs significations respectives, reportez-vous √† la documentation de l'API cat√©gorie de style de paragraphe.

Cet argument est ignoré lorsque la famille diffère de "ParagraphStyles".

namepattern¬†: un filtre sur les noms de styles, sous la forme d'un mod√®le de cha√ģne sensible √† la casse. Les noms incluent les noms internes et traduits.

Les caractères génériques admis sont :

parentstyle : lorsqu'il est présent, seuls les enfants du nom de style parent donné, traduit ou non, sont conservés.

used : lorsque True, le style doit être utilisé dans le document, en cas d'absence, l'argument est ignoré.

userdefined : lorsque True, le style doit avoir été ajouté par l'utilisateur, soit dans le document, soit dans son modèle, en cas d'absence, l'argument est ignoré.

Exemple :

En Basic :

    Dim vStyles As Variant
    vStyles = oDoc.Styles("ParagraphStyles") 'tous les styles de la famille
    vStyles = oDoc.Styles("ParagraphStyles", "H*") 'Heading, Heading 1, ...
    vStyles = oDoc.Styles("ParagraphStyles", Used := False, UserDefined := True) ' Tous les styles définis par l'utilisateur qui ne sont pas utilisés
    vStyles = oDoc.Styles("ParagraphStyles", ParentStyle := "Standard") ' Tous les styles dérivés du 'Style de paragraphe par défaut'
  
En Python

    vStyles = doc.Styles('ParagraphStyles')  #Tous les styles de la famille
    vStyles = doc.Styles('ParagraphStyles', 'H*')  #Titre, Titre 1, ...
    vStyles = doc.Styles('ParagraphStyles', Used = False, UserDefined = True)  # Tous les styles définis par l'utilisateur qui ne sont pas utilisés
    vStyles = doc.Styles('ParagraphStyles', ParentStyle = 'Standard")  # Tous les styles dérivés du "Style de paragraphe par défaut"
  

Toolbars

Cette méthode renvoie soit une liste des noms de barres d'outils disponibles dans le document actif, soit une instance du service SFWidgets.Toolbar.

Syntaxe :

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

Paramètres :

ToolbarName : le nom habituel de l'une des barres d'outils disponibles.

Exemple :

En Basic :

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

    a_list = doc.Toolbars()
  

XStyles

Cette méthode renvoie la représentation UNO d'un style donné pour tous les types de documents sauf Base. Nothing est renvoyé lorsque le StyleName n'existe pas dans la famille donnée.

Syntaxe :

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

Paramètres :

family¬†: une des familles de styles pr√©sentes dans le document r√©el, sous forme de cha√ģne sensible √† la casse. Les noms de famille valides peuvent √™tre r√©cup√©r√©s √† l'aide de la propri√©t√© StyleFamilies.

stylename¬†:¬†un des styles pr√©sents dans la famille donn√©e, sous forme de cha√ģne sensible √† la casse. Le StyleName peut √™tre traduit ou non.

Exemple :

En Basic :

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

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

Toutes les routines ou identifiants de base ScriptForge qui sont préfixés par un caractère de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans des macros de base ou des scripts Python.


Aidez-nous !