Estou tentando concatenar arquivos pdf utilizando a biblioteca PDFBox da Apache.
A api possui alguns métodos muito convenientes que facilitam (e muito) este e outros tipos de operações.
Mas tem um problema: por padrão, a biblioteca trabalha com os arquivos na memória durante o processo de concatenação, gerando um arquivo no disco ao final do processo.
Isso tem gerado uma exceção OutOfMemory por causa do tamanho dos arquivos que quero concatentar (na ordem de 300MB, por exemplo).
A biblioteca tem algumas classes que permitem trabalhar com arquivos temporários em disco, mas não estou tendo grande sucesso em sua utilização.
Alguém que já passou por algo parecido com a PDFBox ou até mesmo com outra biblioteca (tem que ser opensource) tem alguma idéia pro meu problema?
O problema é que posso ter casos em que será necessário concatenar dois arquivos de 2GB, por exemplo.
E posso ter de dois a três usuários fazendo este processo ao mesmo tempo.
Embora não seja uma funcionalidade extremamente utilizada do sistema, num evento como o que acabei de citar, não ficaria nada bom…
O ideal mesmo seria poder fazer o cache em disco.
Mesmo o disco sendo mais lento do que a RAM…