Sumário

# Serviço SFDocuments.Writer

A biblioteca compartilhada SFDocuments fornece diversos métodos e propriedades que facilitam a gestão e manuseio de documentos do LibreOffice.

Alguns métodos são genéricos para todos os tipos de documentos e são herdados do módulo SF_Document, enquanto outros métodos que são específicos para documentos do Writer são definidos no módulo SF_Writer.

## Invocação do serviço

Antes de utilizar o serviço Writer, é necessário carregar ou importar a biblioteca ScriptForge:

• Macros BASIC precisam carregar a biblioteca ScriptForge usando a seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Scripts Python exigem uma importação do módulo scriptforge:
from scriptforge import CreateScriptService

O serviço Writer se relaciona com o serviço UI da biblioteca ScriptForge. Abaixo estão alguns exemplos de como o serviço Writer pode ser invocado:

##### Em Basic

O trecho de código abaixo cria uma instância do serviço Writer que corresponde ao documento Writer atualmente ativo.

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

Outra forma de criar uma instância do serviço Writer é usando o serviço UI. No exemplo a seguir um novo documento Writer é criado e oDoc representa a instância do serviço Writer:

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

Ou usando o método OpenDocument do serviço UI:

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

Também é possível instanciar o serviço Writer usando o método CreateScriptService:

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

No exemplo acima, "MyFile.odt" é o nome de uma janela de documento aberto. Se este argumento não for fornecido, a janela ativa é considerada.

É recomendado liberar recursos após o uso:

        Set oDoc = oDoc.Dispose()

Entretanto, se o documento foi fechado usando o método CloseDocument, não é necessário liberar recursos usando o comando descrito acima.

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

O uso do prefixo "SFDocuments." ao chamar o serviço é opcional.

## Definições

## Propriedades

## Métodos

Lista de Métodos no Serviço Writer
Forms | PrintOut | …

## Forms

Dependendo dos parâmetros fornecidos este método retornará:

- Um Array indexado em zero (ou uma tupla em Python) com os nomes de todos os formulários contidos no documento (se o argumento form estiver ausente)

- Uma instância do serviço SFDocuments.Form representando o formulário especificado como argumento.

Este método é aplicável apenas a documentos do Writer. Documentos Calc e Base possuem sua própria implementação do método Forms nos serviços Calc e Base, respectivamente.

### Sintaxe:

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

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

svc.Forms(form: int): svc

### Parâmetros:

form: Nome ou índice correspondente a um formulário armazenado no documento. Se este argumento estiver ausente, o método retornará uma lista com os nomes de todos os formulários disponíveis no documento.

### Exemplo:

Nos exemplos abaixo, a primeira linha obtém os nomes de todos os formulários do documento e a segunda linha recupera o objeto Form do formulário com nome "Form_A".

##### Em Basic

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

##### Em Python

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

## PrintOut

Envia o conteúdo do documento para a impressora. A impressora pode ser definida previamente por padrão, pelo usuário ou pelo método SetPrinter do serviço Document. Retorna True se bem-sucedido.

### Sintaxe:

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

### Parâmetros:

pages: String contendo as páginas a serem impressas, da mesma forma como é feita a definição usando a interface do usuário. Por exemplo: "1-4;10;15-18". Caso este argumento seja omitido, todas as páginas serão impressas.

copies: Número de cópias. O padrão é 1.

printbackground: Imprime a imagem de fundo quando True (padrão).

printblankpages: Quando False (padrão), não imprime páginas em branco.

printevenpages: Imprime páginas pares quando True (padrão).

printoddpages: Imprime páginas ímpares quando True (padrão).

printimages: Imprime objetos gráficos quando True (padrão).

### Exemplo:

##### Em Basic

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

##### Em Python

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

Todas as rotinas ou identificadores do ScriptForge em Basic que possuem o caractere "_" como prefixo são reservadas para uso interno. Elas não devem ser usadas em macros escritas em Basic ou em Python.

Tópicos relacionados

Serviço SFDocuments.Document

Serviço ScriptForge.UI