Bom dia pessoal, Estou precisando imprimir um documento do libreoffice em pdf, eu achei o mesmo comando em outra linguagem, mas no progress não estou conseguindo reproduzir, segue abaixo o programa que estou usando para teste. Alguém tem alguma ideia de como atribuir no 'CC' que é do tipo raw do progress o que o cara fez na outra linguagem no args2? Código: def var BrOffice as com-handle. def var Desktop as com-handle. def var Planilha as com-handle. def var Documento as com-handle. def var cc as raw. create "com.sun.star.ServiceManager" BrOffice. Desktop = BrOffice:createinstance("com.sun.star.frame.Desktop"). /* Inicia um documento em branco */ Documento = Desktop:loadComponentFromURL("private:factory/scalc","_blank",0,cc). /* Remove Planilhas padrao */ do while Documento:getSheets:getCount > 1: Planilha = Documento:getSheets:getByIndex(1). Documento:getSheets:removeByName( Planilha:name ). end. assign Planilha = Documento:getSheets:getByIndex(0). Planilha:name = "Minha Planilha". Planilha:GetCellByPosition(0,3):string = "Soma". Planilha:GetCellByPosition(0,4):string = "Media". Planilha:GetCellByPosition(0,5):string = "Maximo". Planilha:GetCellByPosition(0,6):string = "Minimo". Planilha:GetCellByPosition(0,7):string = "Multiplica". /* Definindo formato numerico para coluna */ Planilha:getColumns:getByIndex(1):setPropertyValue("NumberFormat",1). /* Ajuste automatico da largura das colunas */ Planilha:getColumns:OptimalWidth = yes. /* Exemplo em outra linguagem - como fazer isso no 'CC'? args2(0).Name = "FilterName" args2(0).Value = "calc_pdf_Export" args2(1).Name = "SelectionOnly" args2(1).Value = true */ /* Exemplo em outra linguagem - parte 2 Documento:storeToURL("file:///C:/tmp/testdoc.pdf", args2). */ Documento:storeToURL("file:///C:/tmp/testdoc.pdf", CC). /* Finaliza BrOffice */ Documento:dispose(). Desktop:terminate(). release object Documento. release object Planilha. release object Desktop. release object BrOffice.
Consegui fazer de uma forma diferente, fica a dica para quem vai querer fazer isso um dia, se é que um dia alguem vai querer fazer isso :? Juntei o COM object do libreoffice que me retorna a pasta de intalação e usei o command line do libreoffice que me permite converter um arquivo para pdf, segue um exemplo. Código: def var BrOffice as com-handle. def var ps As com-handle. def var s As char. create "com.sun.star.ServiceManager" BrOffice. ps = BrOffice:createInstance("com.sun.star.util.PathSubstitution"). s = ps:getSubstituteVariableValue("$(prog)"). MESSAGE s VIEW-AS ALERT-BOX INFO BUTTONS OK. Sobre o PathSubstitution: http://www.openoffice.org/api/docs/comm ... ution.html Comando: s(do exemplo acima) + "LibreOffice.exe --headless --convert-to PDF --outdir c:\temp\document.pdf c:\document.rtf".