Macro para exportar para PDF na mesma pasta e com o mesmo nome do arquivo original

perguntadas 2019-08-12 16:55:59 +0200

imagem do gravatar de Carlos3

updated 2019-08-13 19:31:50 +0200

Preciso de uma macro que exporte arquivos .odt para o formato .pdf.

O código a seguir seria suficiente se não fosse o fato de que os arquivos .odt a serem convertidos são localizados em pastas diferentes e com nomes diferentes. Preciso que a macro seja capaz de exportar cada pdf para a mesma pasta e com o mesmo nome do arquivo .odt que estiver aberto. Ou seja: apenas quero ter uma cópia em pdf para cada arquivo .odt localizados em diversas pastas (mantendo o nome original do arquivo).

sub Exporta_PDF
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/nomedeusuario/Documentos/teste).pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"

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


end sub

Preciso de algo parecido com o código abaixo que funcione no LibreOffice:

sub printPdf(cFile as string)

dim dispatcher as object
cURL = ConvertToURL( cFile )
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
dim args2(0) as new com.sun.star.beans.PropertyValue

cFile = Replace( cFile, "\", "/" )

nPosExtension = InStr( cFile, "." )
cFile = Mid$( cFile, 1, nPosExtension - 1 )

args1(0).Name = "URL"
args1(0).Value = "file:///" + cFile + ".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"
args2(0).Name = "Hidden"
args2(0).Value = True

oDoc = StarDesktop.loadComponentFromURL(cURL, "_blank", 0, args2())

dispatcher.executeDispatch(oDoc.getCurrentController, ".uno:ExportDirectToPDF", "", 0, args1())

end sub

Fonte: https://forum.openoffice.org/en/forum...

editar alterar tag assinalar como ofensivo fechar mesclar Excluir