SFDocuments.Document serviço

A biblioteca SFDocuments disponibiliza métodos e propriedades para facilitar a gestão e a manipulação de documentos LibreOffice.

Os métodos aplicáveis a todos os tipos de documentos (documentos de texto, folhas de cálculo, apresentações, etc.) são fornecidos pelo serviço SFDocuments.Document. Alguns exemplos são:

Ícone de aviso

As propriedades, métodos ou argumentos assinalados com (*) NÃO se aplicam aos documentos Base.


Os métodos e propriedades específicos de determinados componentes LibreOffice são armazenados em serviços separados, tais como SFDocuments.SF_Calc e SFDocuments.SF_Base.

Embora a linguagem Basic não ofereça herança entre classes de objetos, estes últimos serviços podem ser considerados subclasses do serviço SFDocuments.Document. Essas subclasses podem invocar as propriedades e os métodos descritos abaixo.

Chamada de serviço

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

Ícone de nota

• As macros básicas requerem o carregamento da biblioteca ScriptForge através da seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Os scripts Python requerem a importação do módulo scriptforge:
from scriptforge import CreateScriptService


A seguir apresentam-se três formas de invocar o serviço Document.

Em Basic

Utilizando o método getDocument do serviço ScriptForge.UI:


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.GetDocument("Untitled 1")
  

Em alternativa, pode utilizar os métodos CreateDocument e OpenDocument do serviço UI.


    Set oDocA = ui.CreateDocument("Calc")
    Set oDocB = ui.OpenDocument("C:\Documents\MyFile.odt")
  

Utilizar o nome da janela, caso o documento já esteja aberto.


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

Utilizar o documento referenciado por ThisComponent. Isto é especialmente útil ao executar uma macro a partir do IDE do Basic.


    Dim oDoc As Object
    Set oDoc = CreateScriptService("Document", ThisComponent)
  

A partir de uma macro acionada por um evento de documento.


    Sub RunEvent(ByRef poEvent As Object)
        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.DocumentEvent", poEvent)
        ' (...)
    End Sub
  
Ícone de nota

O serviço Document está intimamente relacionado com os serviços UI e FileSystem.


Exceto quando o documento for fechado pelo programa através do método CloseDocument (caso em que é supérfluo), recomenda-se libertar os recursos após a utilização:


    Set oDoc = oDoc.Dispose()
  
Em Python

    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.GetDocument("Untitled 1")
    # (...)
    doc.Dispose()
  

    docA = ui.CreateDocument("Calc")
    docB = ui.OpenDocument("C:\Documents\MyFile.odt")
  

    doc = CreateScriptService("SFDocuments.Document", "Untitled 1")
  

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
  

    def RunEvent(event)
        doc = CreateScriptService("SFDocuments.DocumentEvent", Event)
        # (...)
  
Ícone da dica

A utilização do prefixo «SFDocuments.» ao chamar o serviço é opcional.


Propriedades

Nome

Esta penalização ocorre de um incumprimento anterior (ainda não liquidado) sejasuperior a quatro trimestres consecutivos.

Tipo

Descrição

CustomProperties (*)

Não

Dictionary service

Devolve uma instância do objeto ScriptForge.Dictionary. Após a atualização, pode ser novamente passada à propriedade para atualizar o documento.
Os itens individuais do dicionário podem ser cadeias de caracteres, números, datas (básicas) ou itens com.sun.star.util.Duration.

Description (*)

Não

String

Dá acesso à propriedade «Descrição» do documento (também conhecida como «Comentários»)

DocumentProperties (*)

Sim

Dictionary service

Devolve um objeto ScriptForge.Dictionary que contém todas as entradas. As estatísticas do documento estão incluídas. Note-se que estas são específicas do tipo de documento. Por exemplo, um documento Calc inclui uma entrada «CellCount». Outros documentos não a incluem.

DocumentType

Sim

String

Valor de cadeia de caracteres com o tipo de documento («Base», «Calc», «Writer», etc.)

ExportFilters (*)

Sim

String array

Devolve uma lista com os nomes dos filtros de exportação aplicáveis ao documento atual, sob a forma de uma matriz de cadeias de caracteres com indexação a partir de zero. Os filtros utilizados tanto para a importação como para a exportação também são devolvidos.

FileSystem

Sim

String

Devolve uma cadeia de caracteres com o caminho da URL para a raiz do sistema de ficheiros virtual do documento. Utilize o serviço FileSystem para visualizar o seu conteúdo, bem como para criar, abrir e ler os ficheiros nele armazenados.

Consulte esta página de ajuda para saber mais sobre como aceder e manipular pastas e ficheiros no sistema de ficheiros virtual de um ficheiro LibreOffice.

ImportFilters (*)

Sim

String array

Devolve uma lista com os nomes dos filtros de importação aplicáveis ao documento atual, sob a forma de uma matriz de cadeias de caracteres com indexação a partir de zero. Os filtros utilizados tanto para a importação como para a exportação também são devolvidos.

IsAlive

Sim

Boolean

True quando o documento não foi fechado (por exemplo, por ação do utilizador).

IsBase
IsCalc
IsDraw
IsFormDocument
IsImpress
IsMath
IsWriter

Sim

Boolean

Exatamente uma destas propriedades é True para um determinado documento.

Keywords (*)

Não

String

Dá acesso à propriedade «Keywords» do documento. É representada como uma lista de palavras-chave separadas por vírgulas

MenuHeaders

Sim

String array

Devolve uma lista com os nomes dos menus presentes na barra de menus.

Readonly (*)

Sim

Boolean

True se o documento estiver efetivamente no modo de só leitura

StyleFamilies (*)

Sim

String array

Lista das famílias de estilos disponíveis. Aplicável a todos os tipos de documento, exceto o «Base».

Subject (*)

Não

String

Permite aceder à propriedade «Assunto» do documento.

Title (*)

Não

String

Permite aceder à propriedade «Title» do documento.

XComponent

Sim

Objeto UNO

O objeto UNO com.sun.star.lang.XComponent ou com.sun.star.comp.dba. ODatabaseDocument que representa o documento.

XDocumentSettings (*)

Sim

UNO Object

Um objeto UNO com.sun.star.XXX.DocumentSettings, em que XXX pode ser sheet, text, drawing ou presentation. Este objeto permite aceder às propriedades internas do UNO específicas do tipo de documento.


Exemplo:

Em Basic

O exemplo abaixo apresenta todas as propriedades de um documento. Note-se que o objeto oDoc devolvido pelo método UI.OpenDocument é um objeto SFDocuments.Document.


    Dim ui as Variant : Set ui = CreateScriptService("UI")
    Dim oDoc as Object
    Set oDoc = ui.OpenDocument("C:\Documents\MyFile.ods")
    Dim propDict as Object
    Set propDict = oDoc.DocumentProperties
    Dim keys as Variant : propKeys = propDict.Keys
    Dim k as String, strProp as String
    For Each k In propKeys
        strProp = strProp & k & ": " & propDict.Item(k) & CHR$(10)
    Next k
    MsgBox strProp
    oDoc.CloseDocument()
  
Em Python

Para aceder às propriedades de um documento num script Python, o utilizador tem de aceder diretamente a essas propriedades utilizando os respetivos nomes, conforme ilustrado abaixo:


    doc = ui.GetDocument(r"C:\Documents\MyFile.ods")
    msg = doc.Title + '\n' + doc.Description + '\n' + doc.Keywords
    bas = CreateScriptService("Basic")
    bas.MsgBox(msg)
    doc.CloseDocument()
  

Lista de métodos do Serviço de Documentos

Activate
CloseDocument
ContextMenus
CreateMenu
DeleteStyles
Echo

ExportAsPDF
PrintOut
RemoveMenu
RunCommand
Save
SaveAs

SaveCopyAs
SetPrinter
Style
Toolbars
XStyle


Activate

Devolve True se o documento puder ser ativado. Caso contrário, não se verifica qualquer alteração na interface de utilizador. É equivalente ao método Activate do serviço UI.

Este método é útil quando é necessário atribuir o foco a um documento que está minimizado ou oculto.

Sintaxe:

svc.Activate(): bool

Exemplo:

O exemplo abaixo parte do princípio de que o ficheiro «My_File.ods» já está aberto, mas não está ativo.

Em Basic

    Dim oDoc As Object
    Set oDoc = CreateScriptService("Document", "MyFile.ods")
    oDoc.Activate()
  
Em Python

    doc = CreateScriptService("Document", "MyFile.ods")
    doc.Activate()
  
Ícone da dica

Tenha em atenção que pode invocar o serviço Document passando para o CreateScriptService «Document» ou «SFDocuments.Document»


CloseDocument

Fecha o documento. Se o documento já estiver fechado, independentemente da forma como foi fechado, este método não tem qualquer efeito e devolve False.

O método também devolverá False se o utilizador se recusar a fechá-lo.

Devolve True se o documento tiver sido fechado com sucesso.

Sintaxe:

svc.CloseDocument(saveask: bool = True): bool

Parâmetros:

saveask : Se for True (valor predefinido), o utilizador é convidado a confirmar se as alterações devem ser gravadas no disco. Este argumento é ignorado se o documento não tiver sido modificado.

Exemplo:

Em Basic

    If oDoc.CloseDocument(True) Then
        ' ...
    End If
  
Em Python

    if doc.CloseDocument(True):
        # ...
  

ContextMenus

Este método devolve uma lista dos menus de contexto disponíveis no próprio documento ou uma instância do serviço SFWidgets.ContextMenu.

Sintaxe:

svc.ContextMenus(opt contextmenuname: str, submenuchar: str = ">"): svc
svc.ContextMenus(): str[0..]

Parâmetros:

nome-do-menu-de-contexto: Um dos menus de contexto disponíveis. O nome de um menu de contexto é o último componente do URL do recurso: "private:resource/popupmenu/o-nome-aqui".

submenuchar: O delimitador utilizado para criar árvores de menus ao chamar métodos como AddItem a partir do serviço ContextMenu. O valor predefinido é ">".

Exemplo:

Em Basic

            Dim oContextMenu As Object
            Set oContextMenu = oDoc.ContextMenus("cell")
        
Em Python

            a_list = doc.ContextMenus()
        

CreateMenu

Cria uma nova opção de menu na barra de menus de uma determinada janela de documento.

Este método devolve uma instância do serviço SFWidgets.Menu.

Ícone de nota

O menu criado só está disponível durante a sessão atual do LibreOffice e não é guardado nem no documento nem nas definições globais da aplicação. Por conseguinte, ao fechar a janela do documento, o menu desaparecerá. Só voltará a aparecer quando a macro que cria o menu for executada novamente.


Sintaxe:

svc.CreateMenu(menuheader: str, [before: any], submenuchar: str = ">"): svc

Parâmetros:

menuheader: O nome de nível superior do novo menu.

antes: O nome (como uma cadeia de caracteres) ou a posição (como um número inteiro a partir de 1) de um menu existente, antes do qual o novo menu será colocado. Se não for definido qualquer valor para este argumento, o menu será criado na última posição da barra de menus.

submenuchar: O delimitador utilizado para criar árvores de menus ao chamar métodos como AddItem a partir do serviço Menu. O valor predefinido é ">".

Exemplo:

Em Basic

    Dim oDoc as Object, oMenu as Object
    Set oDoc = CreateScriptService("Document")
    Set oMenu = oDoc.CreateMenu("O meu menu")
    With oMenu
        ' Adicionar itens ao menu
        .AddItem("Item A")
        .AddItem("Item B")
        ' ...
        ' Após criar o menu, a instância do serviço pode ser eliminada
        .Dispose()
    End With
  
Em Python

    doc = CreateScriptService("Document")
    menu = doc.CreateMenu("O meu menu")
    menu.AddItem("Item A")
    menu.AddItem("Item B")
    # ...
    menu.Dispose()
  
Ícone da dica

Consulte a página de ajuda SFWidgets.Menu para saber mais sobre como criar/remover menus nas janelas de documentos do LibreOffice.


DeleteStyles

Suprime um único estilo ou um conjunto de estilos, indicados pelos seus nomes, dentro de uma família de estilos específica. Apenas os estilos definidos pelo utilizador podem ser eliminados; os estilos predefinidos são ignorados. Aplica-se a todos os tipos de documento, exceto Base e FormDocument.

Sintaxe:

svc.DeleteStyles(family: str, styleslist: str[1..*])

Parâmetros:

família: Uma das famílias de estilos presentes no documento atual, representada por uma cadeia de caracteres que distingue maiúsculas de minúsculas. Os nomes de famílias válidos podem ser obtidos através da propriedade StyleFamilies.

styleslist: Um único nome de estilo, na forma de uma cadeia de caracteres, ou um conjunto de nomes de estilos. Os nomes de estilos podem ou não estar localizados. A StylesList é, normalmente, o resultado da execução do método Styles().

Exemplo:

Em Basic

    ' Remover estilos de parágrafo não utilizados
    Const family = "ParagraphStyles"
    aList = oDoc.Styles(family, used := False, userDefined := True)
    oDoc.DeleteStyles(family, aList)
  
Em Python

    # Remoção de estilos com base num prefixo
    a_list = doc.Styles('ParagraphStyles', namepattern = "Py*")
    doc.Styles('ParagraphStyles', a_list)
  

Echo

Suspende as atualizações da interface do utilizador (UI) durante a execução de uma macro. Opcionalmente, o ponteiro do rato pode ser alterado para uma ampulheta enquanto as atualizações da UI estão suspensas.

Ícone da dica

Este método pode proporcionar algumas vantagens em termos de desempenho para macros que executam inúmeras operações que exigem atualizações da interface do utilizador.


Sintaxe:

svc.Echo(echoon: bool = True, hourglass: bool = False)

Parâmetros:

echoon: Especifique False para suspender as atualizações da interface do utilizador. O valor predefinido é True, o que ativa as atualizações da interface do utilizador em tempo real.

ampulheta: Especifique True para alterar o ponteiro do rato para uma ampulheta (Predefinição = False).

Ícone de nota

Se mover o ponteiro do rato depois de este ter mudado para uma ampulheta pode fazer com que ele mude para um ponteiro diferente, dependendo do seu novo fundo.


Exemplo:

Em Basic

    ' Suspende as atualizações da interface do utilizador e altera o ponteiro do rato para uma ampulheta
    oDoc.Echo(EchoOn := False, HourGlass := True)
    ' Outros comandos macro
    ' ...
    ' Restabelece as atualizações da interface do utilizador e o ponteiro do rato
    oDoc.Echo()
  
Em Python

    doc.Echo(echoon = False, hourglass = True)
    ...
    doc.Echo()
  

ExportAsPDF

Exporta o documento diretamente como um ficheiro PDF para o local especificado. Devolve True se o ficheiro PDF tiver sido criado com sucesso.

As opções de exportação podem ser definidas manualmente, utilizando a caixa de diálogo Ficheiro - Exportar como - Exportar como PDF, ou chamando os métodos GetPDFExportOptions e SetPDFExportOptions a partir do serviço Sessão.

Sintaxe:

svc.ExportAsPDF(filename: str, overwrite: bool = False, opt pages: str, opt password: str, opt watermark: str): bool

Parâmetros:

nome do ficheiro: O caminho completo e o nome do ficheiro PDF a criar. Deve seguir a notação SF_FileSystem.FileNaming.

overwrite: Especifica se o ficheiro de destino pode ser substituído (Predefinição = False). Ocorrerá um erro se overwrite estiver definido como False e o ficheiro de destino já existir.

páginas: String que especifica quais as páginas que serão exportadas. Este argumento utiliza a mesma notação que na caixa de diálogo Ficheiro - Exportar como - Exportar como PDF.

palavra-passe: Especifica uma palavra-passe para abrir o ficheiro PDF.

marca de água: Texto a utilizar como marca de água no ficheiro PDF, que será inserido em todas as páginas do PDF resultante.

Exemplo:

Em Basic

O exemplo seguinte exporta o documento atual como um ficheiro PDF, define uma palavra-passe e substitui o ficheiro de destino, caso este já exista.


    oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf", Password := "1234", Overwrite := True)
  

O trecho de código abaixo obtém as opções atuais de exportação para PDF e utiliza-as para criar o ficheiro PDF.


    Dim exportSettings as Object, oSession as Object
    oSession = CreateScriptService("Session")
    exportSettings = oSession.GetPDFExportOptions()
    ' Define a opção para exportar comentários como notas em PDF como «True»
    exportSettings.ReplaceItem("ExportNotes", True)
    oSession.SetPDFExportOptions(exportSettings)
    oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")
  
Em Python

    doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf", password = "1234", overwrite = True)
  

    session = CreateScriptService("Session")
    exportSettings = oSession.GetPDFExportOptions()
    exportSettings.ReplaceItem("ExportNotes", True)
    session.SetPDFExportOptions(exportSettings)
    doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf")
  

PrintOut

Este método envia o conteúdo do documento para a impressora predefinida ou para a impressora definida pelo método SetPrinter.

Devolve True se o documento tiver sido impresso com sucesso.

Sintaxe:

svc.PrintOut(pages: str = "", copies: num = 1): bool

Parâmetros:

páginas: As páginas a imprimir, expressas como uma cadeia de caracteres, tal como na interface do utilizador. Exemplo: «1-4;10;15-18». Por predefinição, são impressas todas as páginas.

cópias: O número de cópias. O valor predefinido é 1.

Exemplo:

Em Basic

    If oDoc.PrintOut("1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
Em Python

    if doc.PrintOut(copies=3, pages='45-88'):
        # ...
  

RemoveMenu

Remove um menu de nível superior da barra de menus de uma determinada janela de documento.

Devolve True se for possível remover o menu especificado. Se o menu especificado não existir, o método devolve False.

Ícone de nota

Este método pode ser utilizado para remover qualquer opção do menu da janela do documento, incluindo os menus predefinidos. No entanto, nenhuma destas alterações na barra de menus é guardada no documento nem nas definições da aplicação. Para restabelecer as definições predefinidas da barra de menus, basta fechar e voltar a abrir a janela do documento.


Sintaxe:

svc.RemoveMenu(menuheader: str): bool

Parâmetros:

menuheader: O nome de nível superior do menu a ser removido.

Exemplo:

Em Basic

    Dim oDoc as Object
    Set oDoc = CreateScriptService("Document")
    oDoc.RemoveMenu("O meu menu")
  
Em Python

    doc = CreateScriptService("Document")
    doc.RemoveMenu("O meu menu")
  
Ícone da dica

Consulte a página de ajuda SFWidgets.Menu para saber mais sobre como criar/remover menus nas janelas de documentos do LibreOffice.


RunCommand

Executa um comando UNO na janela do documento associada à instância do serviço. Alguns comandos típicos são: Guardar, Guardar como, Exportar para PDF, Desfazer, Copiar, Colar, etc.

O documento em si não precisa de estar ativo para que seja possível executar comandos.

Os comandos podem ser executados com ou sem argumentos. Os argumentos não são validados antes da execução do comando. Se o comando ou os seus argumentos forem inválidos, nada acontecerá.

Ícone da dica

Para obter uma lista completa dos comandos UNO que podem ser executados no LibreOffice, consulte a página da Wiki Development/DispatchCommands.


Sintaxe:

svc.RunCommand(command: str, [args: any])

Parâmetros:

comando: Cadeia de caracteres que distingue maiúsculas de minúsculas e que contém o nome do comando UNO. A inclusão do prefixo «.uno:» no comando é opcional. A correção do comando em si não é verificada. Se nada acontecer após a execução do comando, é provável que o comando esteja errado.

args: Para cada argumento a ser passado ao comando, especifique um par que contenha o nome e o valor do argumento.

Exemplo:

Em Basic

O exemplo seguinte executa o comando SelectData num ficheiro do Calc denominado «MyFile.ods», o que resultará na seleção da área de dados com base na célula atualmente selecionada. Note-se que este comando não requer quaisquer argumentos.


    Set oDoc = CreateScriptService("Document", "MyFile.ods")
    oDoc.RunCommand("SelectData")
  

Segue-se um exemplo que executa o comando UNO ReplaceAll e passa valores para os seus argumentos SearchString e ReplaceString. A execução deste comando irá substituir todas as ocorrências da cadeia de caracteres «abc» por «ABC» na folha atual.


    ' Argumentos passados ao comando:
    ' SearchString  = "abc"
    ' ReplaceString = "ABC"
    oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")
  

Note que, ao executar o comando ReplaceAll sem argumentos, será aberta a caixa de diálogo Encontrar e Substituir.

Em Python

    doc = CreateScriptService("Document", "MyFile.ods")
    doc.RunCommand("SelectData")
  

    doc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")
  

Em Python, também é possível chamar RunCommand utilizando argumentos-chave:


    doc.RunCommand(".uno:ReplaceAll", SearchString = "abc", ReplaceString = "ABC")
  
Ícone da dica

Cada componente LibreOffice tem o seu próprio conjunto de comandos disponíveis. Uma forma fácil de aprender os comandos é aceder a Ferramentas - Personalizar - Teclado. Quando passar o rato por cima de uma função na lista Função, aparecerá uma dica de ferramenta com o comando UNO correspondente.


Save

Guarda o documento no local do ficheiro a partir do qual foi carregado. O método é ignorado se o documento não tiver sido alterado.

Devolve False se o documento não puder ser guardado. É gerado um erro se o ficheiro estiver aberto apenas para leitura ou se for um ficheiro novo que ainda não tenha sido guardado.

Não é necessário que o documento esteja ativo para executar este método.

Sintaxe:

svc.Save(): bool

Exemplo:

Em Basic

    If Not oDoc.Save() Then
        ' ...
    End If
  
Em Python

    if not doc.Save():
        # ...
  

SaveAs

Guarda o documento no local de ficheiro indicado. O novo local passa a ser o novo nome do ficheiro ao qual serão aplicadas as chamadas simples ao método «Guardar».

Devolve False se o documento não puder ser guardado. É gerado um erro quando a substituição do destino é rejeitada ou quando o destino tem o atributo «somente leitura» definido.

Não é necessário que o documento esteja ativo para executar este método.

Sintaxe:

svc.SaveAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

Parâmetros:

nome do ficheiro: Uma cadeia de caracteres que contém o nome do ficheiro a utilizar. Deve seguir a notação SF_FileSystem.FileNaming.

substituir: Se True, o ficheiro de destino pode ser substituído (valor predefinido = False).

palavra-passe (*): Uma sequência de caracteres que não contenha espaços, para proteger o documento.

filtername (*): O nome de um filtro que deve ser utilizado para guardar o documento. Se este argumento for passado, o filtro tem de existir.

filteroptions (*): Uma cadeia de opções opcional associada ao filtro.

Exemplo:

Em Basic

    oDoc.SaveAs("C:\Documents\NewCopy.odt", overwrite := True)
  
Em Python

    doc.SaveAs(r"C:\Documents\NewCopy.odt", overwrite = True)
  

SaveCopyAs

Guarda uma cópia do documento ou exporta-o para o local de ficheiro indicado. A localização original permanece inalterada.

Devolve False se o documento não puder ser guardado. É gerado um erro quando a substituição do destino é rejeitada ou quando o destino tem o atributo «somente leitura» definido.

Não é necessário que o documento esteja ativo para executar este método.

Sintaxe:

svc.SaveCopyAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

Parâmetros:

nome do ficheiro: Uma cadeia de caracteres que contém o nome do ficheiro a utilizar. Deve seguir a notação SF_FileSystem.FileNaming.

substituir: Se True, o ficheiro de destino pode ser substituído (valor predefinido = False).

palavra-passe (*): Uma sequência de caracteres que não contenha espaços, para proteger o documento.

filtername (*): O nome de um filtro que deve ser utilizado para guardar o documento. Se este argumento for passado, o filtro tem de existir.

filteroptions (*): Uma cadeia de opções opcional associada ao filtro.

Exemplo:

Em Basic

    oDoc.SaveCopyAs("C:\Documents\Copy2.odt", Overwrite := True)
  
Em Python

    doc.SaveCopyAs(r"C:\Documents\Copy2.odt", overwrite = True)
  

SetPrinter

Define as opções de impressão do documento.

Devolve True em caso de sucesso.

Sintaxe:

svc.SetPrinter(opt printer: str, opt orientation: str, paperformat: str): bool

Parâmetros:

impressora: O nome da fila de impressão para a qual se pretende imprimir. Se não for indicado, é utilizada a impressora predefinida.

orientação: Pode ser PORTRAIT ou LANDSCAPE. Se não for especificada, mantém-se inalterada em relação às definições da impressora.

paperformat: Especifica o formato do papel como um valor de cadeia de caracteres que pode ser A3, A4, A5, LETTER, LEGAL ou TABLOID. Se não for indicado, mantém-se inalterado.

Exemplo:

Em Basic

    oDoc.SetPrinter(Orientation := "PORTRAIT")
  
Em Python

    doc.SetPrinter(paperformat='TABLOID')
  

Styles

Recupera uma lista de estilos que correspondem a um critério composto opcional; o array devolvido pode estar vazio. Aplica-se a todos os tipos de documento, exceto Base.

Sintaxe:

svc.Styles(family, opt namepattern: str, opt used: bool, opt userdefined: bool, opt parentstyle: str, opt category: str): str[0..*])

família: Uma das famílias de estilos presentes no documento atual, representada por uma cadeia de caracteres que distingue maiúsculas de minúsculas. Os nomes de famílias válidos podem ser obtidos através da propriedade StyleFamilies.

categoria: Uma cadeia de caracteres que não distingue maiúsculas de minúsculas: TEXT, CHAPTER, LIST, INDEX, EXTRA, HTML. Para conhecer os respetivos significados, consulte a documentação da API sobre categoria de estilo de parágrafo.

Este argumento é ignorado quando a «Família» difere de «ParagraphStyles».

namepattern: Um filtro para os nomes dos estilos, sob a forma de um padrão de cadeia de caracteres que distingue maiúsculas de minúsculas. Os nomes incluem os nomes internos e os nomes localizados.

Os participantes admitidos por convite são:

parentstyle: Quando presente, apenas os elementos filhos do nome do estilo pai especificado, localizado ou não, são mantidos.

utilizado: Quando True, o estilo deve ser utilizado no documento; quando ausente, o argumento é ignorado.

userdefined: Quando True, o estilo deve ter sido adicionado pelo utilizador, quer no documento, quer no respetivo modelo; caso não exista, o argumento é ignorado.

Exemplo:

Em Basic

    Dim vStyles As Variant
    vStyles = oDoc.Styles("ParagraphStyles") 'Todos os estilos da família
    vStyles = oDoc.Styles("ParagraphStyles", "H*") 'Título, Título 1, ...
    vStyles = oDoc.Styles("ParagraphStyles", Used := False, UserDefined := True) ' Todos os estilos definidos pelo utilizador que não são utilizados
    vStyles = oDoc.Styles("ParagraphStyles", ParentStyle := "Standard") ' Todos os estilos derivados do 'Estilo de parágrafo predefinido'
  
Em Python

    vStyles = doc.Styles('ParagraphStyles')  # Todos os estilos da família
    vStyles = doc.Styles('ParagraphStyles', 'H*')  #Título, Título 1, ...
    vStyles = doc.Styles('ParagraphStyles', Used = False, UserDefined = True)  # Todos os estilos definidos pelo utilizador que não estão a ser utilizados
    vStyles = doc.Styles('ParagraphStyles', ParentStyle = 'Standard')  # Todos os estilos derivados do «Estilo de parágrafo predefinido»
  

Toolbars

Este método devolve uma lista dos nomes das barras de ferramentas disponíveis no documento em questão ou uma instância do serviço SFWidgets.Toolbar.

Sintaxe:

svc.Toolbars(opt toolbarname: str): svc
svc.Toolbars(): str[0..]

Parâmetros:

nome-da-barra-de-ferramentas: O nome habitual de uma das barras de ferramentas disponíveis.

Exemplo:

Em Basic

    Dim oToolbar As Object
    Set oToolbar = oDoc.Toolbars("standard")
  
Em Python

    a_list = doc.Toolbars()
  

XStyles

Este método devolve a representação UNO de um determinado estilo para todos os tipos de documento, exceto Base. É devolvido Nothing quando o StyleName não existe na família indicada.

Sintaxe:

svc.XStyles(family: str, stylename: str): uno

Parâmetros:

família: Uma das famílias de estilos presentes no documento atual, representada por uma cadeia de caracteres que distingue maiúsculas de minúsculas. Os nomes de famílias válidos podem ser obtidos através da propriedade StyleFamilies.

stylename: Um dos estilos presentes na família indicada, sob a forma de uma cadeia de caracteres que distingue maiúsculas de minúsculas. O StyleName pode ou não ser localizado.

Exemplo:

Em Basic

    Dim oStyle As Object
    Set oStyle = oDoc.XStyle("ParagraphStyle", "Heading 2")
  
Em Python

    oStyle = doc.XStyle('ParagraphStyle', 'Heading 2')
  
Ícone de aviso

Todas as rotinas ou identificadores do ScriptForge Basic que tenham o caractere de sublinhado «_» como prefixo estão reservados para uso interno. Não se destinam a ser utilizados em macros do Basic ou em scripts Python.


Necessitamos da sua ajuda!

Necessitamos da sua ajuda!