Olá novamente.
Estou usando a versão 3.8 beta 4 do Apache POI para manipular um arquivo modelo que servirá como saída de relatório de alguns dados.
Neste caso o arquivo Office é do formato “doc” e estou usando o HWPFDocument para realizar a tarefa.
No modelo, eu tenho a seguinte estrutura:
Cabeçalho: Que contém uma imagem (a logomarca da empresa), o número de páginas, o cabeçalho propriamente dito e um texto que deverá ser impresso em todas as páginas geradas pelo relatório.
“Corpo”: aonde contém uma tabela com duas colunas e que são preenchidas dinamicamente.
Rodapé: Que é semelhante ao cabeçalho, mas que contém informações a serem preenchidas dinamicamente. E elos para o e-mail e site.
Usando isto:
HWPFDocument word = new HWPFDocument(new POIFSFileSystem(filePath));
Range range = word.getRange(); //to replace the content in the cols of the tables in the "body".
range.replaceText("#n_v_left#", map.get("#_n_v_left#"));
range.replaceText("#n_v_right#", map.get("#n_v_right#"));
HeaderStories hs = new HeaderStories(word);
Range hsRange = hs.getRange();//to replace the content in header and footnote
hsRange.replaceText("#day#", map.get("#day#"));
hsRange.replaceText("#mon#", map.get("#mon#"));
hsRange.replaceText("#yea#", map.get("#yea#"));
hsRange.replaceText("#n_1#", map.get("#n_1#"));
hsRange.replaceText("#n_2#", map.get("#n_2#"));
hsRange.replaceText("#serial#", map.get("#serial#"));
OutputStream output = new FileOutputStream(outputFileName+".doc");
output.flush();
word.write(output);
output.close();
Tudo ocorria bem. A API substitui as marcações corretamente, mas ela passou a apagar os links do rodapé e a colocar automaticamente um objeto de imagem no rodapé.
como na imagem: http://i32.photobucket.com/albums/d23/samirrolemberg/image.png
(a imagem é do modelo original que contém dados sigilosos, por isso os rabiscos).
Retirei as imagens e executei novamente a aplicação, mas ocorreu o mesmo problema.
Depois tentei voltar para uma versão estável da API (a 3.7) (utilizando os mesmos metodos de substituição) mas, quando eu tento salvar um arquivo, o arquivo criado é gerado como um arquivo inválido e corrompido.
E agora não sei mais o que fazer! alguém já teve esse “problema”?