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 !