Pergunte aqui
0

Macro Calc to PDF (fechada)

perguntadas 2018-08-16 21:06:49 +0100

imagem do gravatar de Conrado

updated 2018-08-17 14:54:09 +0100

Pessoal, estou com este procedimento (peguei de diversos sites)

Sub myExportToPDF()
Dim pdfName As String
Dim ArqName as String
Dim Endereco As String
Dim oDoc, oPlan

oDoc = ThisComponent
oPlan = oDoc.Sheets.getByName( "Lancamento" )

Endereco = oPlan.getCellByPosition(17,19).String
ArqName = oPlan.getCellByPosition(17,17).String

pdfName = ArqName & ".pdf"

' change the path below as per your needs
path ="file:///" & Endereco & pdfName

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

' This part makes sure only the first page gets printed
dim argsF(1) as new com.sun.star.beans.PropertyValue
argsF(0).Name = "PageRange"
argsF(0).Value = "4"

' This part sets filename and references the properties above
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = path
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).name = "FilterData"
args1(2).value = argsF()

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

End Sub

Porém ele dá erro na última linha conforme imagem:

Descrição da imagem

Observações: O nome do arquivo em PDF não será o nome do arquivo em Calc. Libreoffice 6.0.6.2 Win 7 Professional

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

@Conrado, meu palpite é um problema com o conteúdo da variável Endereco. O que vai dentro dela, por exemplo?

imagem do gravatar de GrafenoGrafeno ( 2018-08-17 01:26:09 +0100 )editar

@Grafeno, ArqName = número do relatório (textformat), e Endereco = o endereço do meu servidor "o:\almoxarifado\2018\RNC`S\"

imagem do gravatar de ConradoConrado ( 2018-08-17 12:40:11 +0100 )editar

@Grafeno, achei meu erro. Estava assim meu endereço do servidor o:\almoxarifado\2018\RNCS\. Mas o correto é o:/almoxarifado/2018/RNCS/

imagem do gravatar de ConradoConrado ( 2018-08-17 14:51:38 +0100 )editar

1 Resposta

0

respondidas 2018-08-17 14:53:49 +0100

imagem do gravatar de Conrado

Achei meu erro pessoal.

Estava com o endereço do meu servidor com as barras invertidas (como mostra na barra de endereço do explorer)

o:\almoxarifado\2018\RNCS\

Mas o correto é assim:

o:/almoxarifado/2018/RNCS/

Agora a macro funciona normalmente.

editar assinalar como ofensivo Excluir Link mais

Comentários

1

@Conrado, se não quiser trocar manualmente as barras () para contra-barras (/) nas células use a função convertToURL(). No seu código ficaria assim path = convertToURL(Endereco & pdfName).

imagem do gravatar de GrafenoGrafeno ( 2018-08-17 23:13:17 +0100 )editar

@Grafeno, legal, vlw pela dica. Deu certo aqui também.

imagem do gravatar de ConradoConrado ( 2018-08-20 12:45:41 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-08-16 21:06:49 +0100

Lidas: 40 vezes

Última atualização: Aug 17 '18