Pessoal,
Estou desenvolvendo uma aplicação que gera um documento em pdf e para isso adotei o itext (até mesmo porque já o uso em outras soluções).
Esse documento é composto de uma página inicial que é diferente das demais páginas, sendo assim, possuo um form modelo para a primeira págian e outro para as demais.
Meu problema é que não consigo preencher os dois forms e criar um documento só de duas ou mais páginas com ele…
Não vou postar código pois já fiz tantas tentativas diferentes que se fosse postá-las o tópico ficaria imenso, vou apenas postar o algoritmo para entenderem melhor.
//Suponha que informacoes seja um list com os dados do documento e que cada página possua 10 registros
int paginas = informacoes.size() / 10;
int i = 0;
int indice = 0;
while(i <= paginas)
{
if(i=0) //primeira página
{
form.setField("header", ((Registro)informacoes(0)).getNome())
}
for(int cont = indice; cont <= 10; cont++)
{
//preenche campos com informacoes(cont)
}
adicionaPagina()
indice+=10;
i++;
}
saldaDocumento()
Tentei usar um Stamper para o documento principal (que inclui a primeira página) e ir criando outros stamper’s de acordo com a demanda de páginas e adicionar ao stamper princial, mas sempre dá erro. Às vezes cria páginas em branco, às vezes corrompe o documento.
Tentei também usar o PdfCopy e PdfCopyFields, também sem sucesso.
A única forma que encontrei para fazer funcionar, foi criando cada documento fisicamente e depois concatená-los com o PdfCopy, mas assim o IO fica muito grande, além de poder ocorrer algum erro antes da exclusão dos arquivos do disco provocando uso desnecessário de espaço.
Há algum iluminado que tenha já tenha passado por isso e tenha alguma dica para me passar???
Já estou nessa pendenga a uns dois dias e percebo que estou andando em circulos…
Obs.: Os nomes dos campos nos dois formulários (primeira página e demais páginas) são iguais.