¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como salvar um documento .docx como PDF através de OLE - Guia passo a passo

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Olá Geeks,

Tenho um requisito para manipular um documento MS-Word (.docx) através de OLE (Object Link Enabling) e salvá-lo como PDF no sistema local.

Utilizei WORD.BASIC como objeto e consegui manipular o documento (.docx) e salvá-lo no mesmo formato .docx.

No entanto, estou enfrentando um desafio técnico ao tentar salvar o documento (.docx) como PDF.

Alguém pode me orientar sobre como salvar o .docx como PDF através de OLE ? Pesquisei em vários blogs e fóruns, mas não encontrei uma solução adequada para salvar o documento manipulado (.docx) como PDF.

Anexo o código que utilizei para a manipulação do documento (.docx).


CREATE OBJECT lv_word 'WORD.BASIC'.

CALL METHOD OF lv_word 'FILEOPEN' EXPORTING #1 = <<file_path>>.

CALL METHOD OF lv_word 'ViewHeader'.
CALL METHOD OF lv_word 'EDITREPLACE'
EXPORTING
#01 = <<Find_Word>>
#02 = <<Replace_word>>
#03 = 0
#04 = 0
#05 = 0
#06 = 0
#07 = 0
#08 = 0
#09 = 0
#10 = 1
#11 = 0
#12 = 1.
CALL METHOD OF lv_word 'CloseViewHeaderFooter'.
CALL METHOD OF lv_word 'FILESAVEAS' EXPORTING #1 = <<file_path>>.
CALL METHOD OF lv_word 'DOCCLOSE' EXPORTING #1 = 2.
CALL METHOD OF lv_word 'APPCLOSE'.

Obrigado e cumprimentos,

Saivignesh Sudarsan.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá,

Você pode exportar o documento através do OLE.

Tente isto:

Saudações, Dieter

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Simone Milesi,

Muito obrigado pela sua informação tão importante, a partir da qual encontrei a solução para salvar o arquivo .docx em formato PDF.

Sinto-me agradecido e feliz

Obrigado e cumprimentos,

Saivignesh Sudarsan.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

°Olá!

Ao chamar o método SaveAs, passe '17' como segundo parâmetro -> é o valor para salvar como pdf

Eu descobri isso em outro fórum


°Pronto! Descobri como fazer isso.

Acontece que o número 17 é o FormatType para PDF, então você só precisa fazer algo assim:

document.SaveAs(filename, 17)

Não encontrei nenhuma documentação a respeito, mas começamos do FormatType 0 e, uma vez que chegamos ao 17, °criamos um PDF válido!

A referência é de um blog de Ruby, mas ele usa o Win OLE para conseguir, então acredito que você pode fazer o mesmo

Ruby no Windows: Salvando documentos do Microsoft Office como PDFs

Me avise se funcionar

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Geeks,

Obrigado pela sua resposta pude obter uma ideia de ambos ( Simone Milesi & Dieter Grˆhn ) .

mas não estava certo de como usar os parâmetros dos métodos para salvar o arquivo .docx como pdf.

então durante minha busca, encontrei um tópico (mostrado abaixo) que foi útil.

Agora deixe-me explicar como alcancei o objetivo (salvar o arquivo .docx em formato pdf usando OLE).

Passo - 1:

Inicialmente usei WORD.BASIC para manipular o arquivo .docx.

Anexo o código que utilizei (como mencionado anteriormente)

CREATE OBJECT lv_word 'WORD.BASIC'.

CALL METHOD OF lv_word 'FILEOPEN' EXPORTING #1 = <<file_path>>.

CALL METHOD OF lv_word 'ViewHeader'.
CALL METHOD OF lv_word 'EDITREPLACE'
EXPORTING
#01 = <<Find_Word>>
#02 = <<Replace_word>>
#03 = 0
#04 = 0
#05 = 0
#06 = 0
#07 = 0
#08 = 0
#09 = 0
#10 = 1
#11 = 0
#12 = 1.
CALL METHOD OF lv_word 'CloseViewHeaderFooter'.
CALL METHOD OF lv_word 'FILESAVEAS' EXPORTING #1 = <<file_path>>.
CALL METHOD OF lv_word 'DOCCLOSE' EXPORTING #1 = 2.
CALL METHOD OF lv_word 'APPCLOSE'.

Passo - 2:

Agora, usei WORD.APPLICATION para salvar o arquivo manipulado em pdf.

create object† lv_wordapp 'word.application'.

set property of lv_wordapp 'Visible' = 0.

call method of lv_wordapp 'Documents' = v_worddoc.

call method of lv_worddoc 'Open'

exporting

#1 = 'C:\† <FILENAME.DOCX>'.

call method of lv_wordapp 'ActiveDocument' = lv_wordadoc.

call method of lv_wordadoc 'Content' = lv_wordcont.

call method of lv_wordadoc 'SaveAs'

exporting

#1 = 'C:\† <FILENAME.PDF>'

#2 = 17.

call method of lv_wordapp 'Quit'.

free object lv_wordapp .

O arquivo PDF é gerado com sucesso.

Finalmente encontrei uma solução e o código acima funciona perfeitamente bem

Obrigado a todos

Obrigado e Cumprimentos,

Saivignesh Sudarsan.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?