Minha foto
Henderson Matsuura Sanches
Professor nas Faculdade JK de Tecnologia e Faculdade JK Michelangelo no Distrito Federal; Mestre em Engenharia Biomédica pela UnB/FGA (2017); Graduado em Licenciatura em Computação pela Faculdade Fortium (2011); Membro da Comunidade LibreOffice Brasil desde 2013; Membro da TDF – The Document Foundation desde 2014; Coordenador Geral do FLISOL – DF nos anos 2018, 2017 e 2016; Pesquisador no Laboratório de Informática em Saúde (LIS) da UnB/FGA com pesquisas envolvendo Ontologia no Tratamento da Neoplasia Mamária (NM); Membro da Comunidade Soffware Livre de Brasília; Sócio da ASL – Associação Software Livre; Sócio da SBC – Sociedade Brasileira de Computação e Sócio da SBEB – Sociedade Brasileira de Engenharia Biomédica.

Postagem em destaque

Exportar ou Salvar como PDF em LibreOffice Calc usando Macro

Este tutorial foi retirado do site Debugpoint, não mudei nada nenhuma linha de comando, apenas traduzir a explicação do tutorial e espero que ajudem a todos. 

Este tutorial irá mostrar como salvar no LibreOffice Calc diretamente como um arquivo PDF usando macro básico. Na tarefa de automação muitos esse recurso simples e necessária.

Escrevendo o Macro

Vamos chamar a função como "ExportToPDF ()" que vamos realizar todo o processo.
Primeiro defina dois objetos que possuem o documento Calc e uma expedição para executar ações.
 

dim document as object
dim dispatcher as object

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")


 Agora crie um arquivo vazio de usar a função "Open" do base. Note-se que o caminho é o caminho do sistema de arquivos. Assim, temos o caminho prefixado com "file: //". Uma vez que o arquivo é criado, feche o arquivo.

path ="file:///home/arindam/sheet1.pdf"
Open path For Append As #1
Close #1


Agora, criar uma matriz de tamanho 1 para segurar o valor da propriedade para exportação, ou pdf. Em seguida, preencha a propriedade na matriz de nome "URL" com o caminho do arquivo que acabamos de criar. 


dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///home/arindam/sheet1.pdf" 


Finalmente chamar o método executeDispatch para colocar o conteúdo sheet1 ao pdf e salvar. 
 
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1()) 

Isto completa o código. 

A função completa está presente abaixo. 

Sub ExportToPDF()
   dim document as object
   dim dispatcher as object

   document = ThisComponent.CurrentController.Frame
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
   ' change the path below as per your needs
   path ="file:///home/arindam/sheet1.pdf"
   Open path For Append As #1
   Close #1

   dim args1(0) as new com.sun.star.beans.PropertyValue
   args1(0).Name = "URL"
   args1(0).Value = "file:///home/arindam/sheet1.pdf"  ' change the path below as per your needs

   dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
End Sub 


Execute o salvar como função pdf 

Abrir calc LibreOffice e criar um macro e colocar a função acima. Faça qualquer coisa no sheet1. Para este exemplo, eu escrevi algo assim - 

LibreOffice CALC Save As PDF Macro - Sheet
LibreOffice CALC Salvar como PDF Macro - Folha 

Execute o macro

Você pode ver todo o conteúdo sheet1 é salvo no diretório especificado mencionado na macro acima. Aqui está o conteúdo do pdf que é criado usando essa macro.

LibreOffice Save As PDF Macro
LibreOffice Salvar como PDF Macro

Comentários