Estou com um problema sério. Preciso unificar (merging) dois arquivos do word (.doc) e manter a formatação do mesmo. Já tentei com a api apache poi. Mas meu texto está perdendo a formatação.
Você consegue fazer isso com VBA, por acaso? Pode ser que os dois documentos não possam ser juntados porque têm definições diferentes para os tipos de parágrafos.
M
mascjunior
Eu não tentei fazer em VBA.
Com a api apache poi, eu consegui fazer a junção, porém o texto perde a formatação.
Fiz usando HWPFDocument e utilizando o Range.
teria como manter a formatação utilizando este componente?
B
bezier_curve
Eu perguntei se usando VBA você consegue manter a formatação desejada, porque como é um componente do próprio Word e escrito pela própria Microsoft não deve sofrer de problemas do tipo “não foi feita uma engenharia reversa completa do formato .DOC, portanto o POI não consegue fazer tal tipo de coisas” (ignoro se o POI tenha tal tipo de limitação porque nunca o usei).
Talvez sofra de outros problemas, do tipo “só funciona se houver uma cópia licenciada do Office nessa máquina etc.”, ou então “que não seja possível fazer um merge preservando a formatação”. É uma coisa que não sei, só estou perguntando para você porque você pode tentar ver se isso consegue preservar a formatação ou não.
M
mascjunior
com esse código eu consigo uma copia exara do arquivo.
Com o código abaixo, eu consigo fazer o merging entre os arquivos, porém eu perco a formatação e as imagens.
// POI apparently cant create a document from scratch, // so we need an existing empty dummy document HWPFDocumentdoc=newHWPFDocument(newFileInputStream(D:\\tmp.doc));Rangerange=doc.getRange();//I can get the entire Document and insert it in the tmp.doc //However any formatting in my word document is lost. HWPFDocumentdoc2=newHWPFDocument(newFileInputStream(D:\\doc1.doc));Rangerange2=doc2.getRange();range.insertAfter(range2.text());//I can get the information (text only) for each character run/paragraph or section. //Again any formatting in my word document is lost. HWPFDocumentdoc3=newHWPFDocument(newFileInputStream(D:\\doc2.doc));Rangerange3=doc3.getRange();for(inti=0;irange3.numCharacterRuns();i++){CharacterRunrun3=range3.getCharacterRun(i);range.insertAfter(run3.text());}OutputStreamout=newFileOutputStream(D:\\result.doc);doc.write(out);out.flush();out.close();
alguma dica de como manter a formatação e as imagens?