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.
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 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 Salvar como PDF Macro |
Fonte: DebugPoint
Comentários
Postar um comentário