Olá,
Você pode exportar o documento através do OLE.
Tente isto:
Saudações, Dieter
Avalados por :
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.
Olá,
Você pode exportar o documento através do OLE.
Tente isto:
Saudações, Dieter
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.
°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
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.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute