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:

note

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

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

note

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

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.


♥ Doe para nosso projeto! ♥