Preciso gerar automaticamente um arquivo PDF a partir de um documento HTML (X) existente. Os arquivos de entrada (relatórios) usam um layout bastante simples, baseado em tabela, portanto, provavelmente não é necessário suporte a coisas realmente sofisticadas de JavaScript / CSS.
Como estou acostumado a trabalhar em Java, é preferível uma solução que possa ser facilmente usada em um projeto java. Porém, ele só precisa funcionar em sistemas Windows.
Uma maneira de fazer isso é viável, mas não produz resultados de boa qualidade (pelo menos fora da caixa), usando CSS2XSLFO e Apache FOP para criar os arquivos PDF. O problema que encontrei foi que, embora os atributos CSS sejam convertidos de maneira adequada, o layout da tabela é bastante complicado, com o texto fluindo para fora da célula da tabela.
Também dei uma olhada rápida no Jrex, uma API Java para usar o mecanismo de renderização Gecko.
Existe talvez uma maneira de pegar a página renderizada do mecanismo de renderização do Internet Explorer e enviá-la para uma ferramenta de impressora PDF automaticamente? Não tenho experiência em programação OLE no Windows, por isso não tenho idéia do que é possível e do que não é.
Você tem alguma ideia?
fonte
Respostas:
O projeto do renderizador Flying Saucer XHTML tem suporte para a saída de XHTML para PDF. Veja um exemplo aqui .
fonte
Você tentou o WKHTMLTOPDF ?
É um utilitário shell simples, uma implementação de código aberto do WebKit. Ambos são gratuitos.
Criamos um pequeno tutorial aqui
EDIT (2017):
Se fosse para construir algo hoje, eu não seguiria mais esse caminho.
Mas usaria http://pdfkit.org/ .
Provavelmente retirando todas as dependências do nodejs, para rodar no navegador.
fonte
Confira o iText ; é um kit de ferramentas Java PDF puro que oferece suporte à leitura de dados em HTML. Usei-o recentemente em um projeto quando precisei extrair conteúdo do nosso CMS e exportar como arquivos PDF, e tudo foi bastante direto. O suporte para CSS e tags de estilo é bastante limitado, mas renderiza tabelas sem problemas (nunca consegui definir a largura da coluna).
Criar um PDF a partir do HTML é mais ou menos assim:
fonte
Se você tem o financiamento, nada supera o Prince XML, pois este vídeo mostra
fonte
É assim que o ActivePDF funciona, o que é bom significa que você sabe o que obterá e, na verdade, possui um suporte de estilo razoável.
É também um dos poucos pacotes que encontrei (quando analisamos alguns anos atrás) que realmente suporta os vários comandos CSS de quebra de página.
Infelizmente, o software ActivePDF é muito frustrante - já que ele precisa iniciar o navegador IE em segundo plano para conversões, pode ser bastante lento e também não é particularmente estável.
Atualmente, existe uma nova versão na versão beta que deveria ser muito melhor, mas eu não tive a chance de experimentá-la, então não sei o quanto de melhoria é essa.
fonte
Você pode usar um firefox sem cabeça com uma extensão. É muito chato para correr, mas produz bons resultados.
Confira esta resposta para mais informações.
fonte
Se você olhar para a barra lateral da sua pergunta, verá muitas perguntas relacionadas ...
No seu contexto, o método mais simples pode ser instalar um driver de impressão PDF, como o PDFCreator, e apenas imprimir a página nesta saída.
fonte
Amyuni WebkitPDF pode ser usado com o JNI para uma solução apenas para Windows. Esta é uma biblioteca de conversão de HTML para PDF / XAML, gratuita para uso comercial e não comercial.
Se os arquivos de saída não forem necessários imediatamente, para melhor escalabilidade, talvez seja melhor ter uma fila e alguns processos em segundo plano retirando itens de lá, convertendo-os e armazenando-os no banco de dados ou sistema de arquivos.
isenção de responsabilidade usual se aplica
fonte