Contenuto
Indice 🔎︎

# SFDocuments.Writer service

The SFDocuments shared library provides a number of methods and properties to facilitate the management and handling of LibreOffice documents.

Some methods are generic for all types of documents and are inherited from the SF_Document module, whereas other methods that are specific for Writer documents are defined in the SF_Writer module.

The SF_Writer module is focused on:

## Service invocation

The Writer service is closely related to the UI service of the ScriptForge library. Below are a few examples of how the Writer service can be invoked.

##### In Basic

The code snippet below creates a Writer service instance that corresponds to the currently active Writer document.

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

Another way to create an instance of the Writer service is using the UI service. In the following example, a new Writer document is created and oDoc is a Writer service instance:

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

Or using the OpenDocument method from the UI service:

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

It is also possible to instantiate the Writer service using the CreateScriptService method:

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

In the example above, "MyFile.odt" is the name of an open document window. If this argument is not provided, the active window is considered.

It is recommended to free resources after use:

        Set oDoc = oDoc.Dispose()

However, if the document was closed using the CloseDocument method, it becomes unnecessary to free resources using the command described above.

##### In Python

        myDoc = CreateScriptService("Writer") ' Default = ActiveWindow

        ui = CreateScriptService("UI")
        myDoc = ui.CreateDocument("Writer")

        myDoc = ui.OpenDocument(r"C:\Documents\MyFile.odt")

        myDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")
        myDoc.Dispose()

The use of the prefix "SFDocuments." while calling the service is optional.

## Definitions

## Properties

## Methods

List of Methods in the Writer Service
Forms | PrintOut | …

## Forms

Depending on the parameters provided this method will return:

- Una matrice con indice a partire da zero (o una tupla in Python) con i nomi di tutti i formulari contenuti nel documento (se l'argomento form è assente)

- A SFDocuments.Form service instance representing the form specified as argument.

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

### Sintassi:

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

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

svc.Forms(form: int): svc

### Parametri:

form: il nome o l'indice corrispondente a un formulario memorizzato nel documento. Se l'argomento è assente, il metodo restituirà un elenco con i nomi di tutti i formulari disponibili nel documento.

### Esempio:

Negli esempi seguenti la prima riga ottiene il nome di tutti i formulari presenti nel documento e la seconda riga recupera l'oggetto Form del formulario chiamato "Form_A".

##### In Basic

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

##### In Python

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

## PrintOut

Send the contents of the document to the printer. The printer may be previously defined by default, by the user or by the SetPrinter method of the Document service. Returns True when successful.

### Sintassi:

svc.PrintOut(opt pages: str = "", opt copies: num = 1, opt printbackground: bool = True, opt printblankpages: bool = False, opt printevenpages: bool = True, opt printoddpages: bool = True, opt printimages: bool = True): bool

### Parametri:

pages: The pages to print as a string, like in the user interface. Example: "1-4;10;15-18". Default = all pages

copies: The number of copies, default is 1.

printbackground: Prints the background image when True (default).

printblankpages: When False (default), omits empty pages.

printevenpages: Prints even pages when True (default).

printoddpages: Print odd pages when True (default).

printimages: Print graphic objects when True (default).

### Esempio:

##### In Basic

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

##### In Python

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

All ScriptForge Basic routines or identifiers that are prefixed with an underscore character "_" are reserved for internal use. They are not meant be used in Basic macros or Python scripts.

Argomenti correlati

Servizio SFDocuments.Document

Servizio ScriptForge.UI