Contenu

# Service SFDocuments.Writer

La bibliothèque partagée SFDocuments fournit un certain nombre de méthodes et de propriétés pour faciliter la gestion et la manipulation des documents LibreOffice.

Certaines méthodes sont génériques pour tous les types de documents et sont héritées du module SF_Document, tandis que d'autres méthodes spécifiques aux documents Writer sont définies dans le module SF_Writer.

## Invocation du service

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

• 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

Le service Writer est étroitement lié au service UI de la bibliothèque ScriptForge. Vous trouverez ci-dessous quelques exemples de la manière dont le service Writer peut être appelé.

##### En Basic :

L'extrait de code ci-dessous crée une instance de service Writer qui correspond au document Writer actuellement actif.

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

Une autre façon de créer une instance du service Writer consiste à utiliser le service UI. Dans l'exemple suivant, un nouveau document Writer est créé et oDoc est une instance de service Writer :

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.CreateDocument("Writer")

Ou en utilisant la méthode OpenDocument du service UI :

        Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")

Il est également possible d'instancier le service Writer à l'aide de la méthode CreateScriptService :

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")

Dans l'exemple ci-dessus, "MyFile.odt" est le nom d'une fenêtre de document ouverte. Si cet argument n'est pas fourni, la fenêtre active est considérée.

Il est recommandé de libérer des ressources après utilisation :

        Set oDoc = oDoc.Dispose()

Cependant, si le document a été fermé à l'aide de la méthode CloseDocument, il devient inutile de libérer des ressources à l'aide de la commande décrite ci-dessus.

##### En 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'utilisation du préfixe "SFDocuments." lors de l'appel du service est facultative.

## Définitions

## Propriétés

## Méthodes

Liste des méthodes dans le service Writer
Forms | ImportStylesFromFile | PrintOut

## Forms

En fonction des paramètres fournis, cette méthode renverra :

- Une matrice de base zéro (ou un tuple en Python) avec les noms de tous les formulaires contenus dans le document (si l'argument form est absent)

- Une instance de service SFDocuments.Form représentant le formulaire spécifié comme argument.

Cette méthode s'applique uniquement aux documents Writer. Les documents Calc et Base ont leur propre méthode Forms dans les services Calc et Base, respectivement.

### Syntaxe :

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

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

svc.Forms(form: int): svc

### Paramètres :

form : le nom ou l'index correspondant à un formulaire stocké dans le document. Si cet argument est absent, la méthode renverra une liste avec les noms de tous les formulaires disponibles dans le document.

### Exemple :

Dans les exemples suivants, la première ligne récupère les noms de tous les formulaires du document et la deuxième ligne récupère l'objet Form du formulaire nommé "Form_A".

##### En Basic :

        Set FormNames = oDoc.Forms()
        Set FormA = oDoc.Forms("Form_A")

##### En Python

        form_names = doc.Forms()
        form_A = doc.Forms("Form_A")

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

- ParagraphStyles et CharacterStyles

- NumberingStyles et ListStyles

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 style présentes dans le document réel, sous la forme d'une chaîne sensible à la casse ou d'un tableau de telles chaînes. Laissez cet argument vide pour importer 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

Envoyer le contenu du document à l'imprimante. L'imprimante peut être préalablement définie par défaut, par l'utilisateur ou par la méthode SetPrinter du service Document. Renvoie True en cas de succès.

### Syntaxe :

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

### Paramètres :

pages : les pages à imprimer sous forme de chaîne, comme dans l'interface utilisateur. Exemple : "1-4;10;15-18". Par défaut = toutes les pages

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

printbackground : Imprime l'image d'arrière-plan lorsque True (par défaut).

printblankpages : lorsque False (par défaut), omet les pages vides.

printevenpages : imprime les pages paires lorsque True (par défaut).

printoddpages : imprime les pages impaires lorsque True (par défaut).

printimages : imprime les objets graphiques lorsque True (par défaut).

### Exemple :

##### En Basic :

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

##### En Python

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

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.

Rubriques connexes

Service SFDocuments.Document

Service ScriptForge.UI

Aidez-nous !