Ajuda do LibreOffice 25.2
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.
Antes de utilizar o serviço Writer, é necessário carregar ou importar a biblioteca ScriptForge:
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:
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.
    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.
| Lista de Métodos no Serviço Writer | ||
|---|---|---|
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.
svc.Forms(): str[0..*]
svc.Forms(form: str = ''): svc
svc.Forms(form: int): svc
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.
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".
    Set FormNames = oDoc.Forms()
    Set FormA = oDoc.Forms("Form_A")
  
    form_names = doc.Forms()
    form_A = doc.Forms("Form_A")
  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:
ParagraphStyles e CharacterStyles
NumberingStyles e ListStyles
Retorna True se os estilos foram importados com êxito.
svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool
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.
    oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)
  
    doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)
  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.
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
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).
      oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)
  
    doc.PrintOut(printblankpages = True, copies = 3)