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

ImportStylesFromFile

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

ImportStylesFromFile

Esse método carrega todos os estilos pertencentes a uma ou mais famílias de estilos de um arquivo fechado para o documento real. O documento real deve ser um Calc ou um Writer.

São sempre importados juntos:

Retorna True se os estilos foram importados com êxito.

Sintaxe:

svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool

Parâmetros:

Filename: o arquivo a partir do qual os estilos serão carregados na notação FileSystem. Presume-se que o arquivo seja do mesmo tipo de documento que o documento real.

Families: Uma das famílias de estilo presentes no documento real, como uma cadeia de caracteres que diferencia maiúsculas de minúsculas ou uma matriz dessas cadeias. Deixe esse argumento em branco para importar todas as famílias.

Overwrite: Quando True, os estilos reais podem ser substituídos. O padrão é False.

Exemplo:

Em Basic

    oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)
  
Em Python

    doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)
  

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! ♥