Gerar PDF a partir de dados estruturados
-
02-07-2019 - |
Pergunta
Eu quero ser capaz de gerar um altamente gráfica (com lotes de conteúdo de texto também) de arquivos PDF a partir de dados que eu poderia ter em um banco de dados ou XML ou qualquer outra forma estruturada.
Atualmente, nosso designer gráfico cria esses arquivos PDF no Photoshop manualmente depois de obter o conteúdo como um documento do Word MS. Mas, geralmente, há mais de 20 revisões do conteúdo; pequenas mudanças aqui e ali, correções ortográficas, etc.
Os 2 desvantagens são: 1) O tempo do designer gráfico é desnecessariamente ocupado. A primeira versão é a única que ele / ela deve ter para trabalhar. 2) O arquivo PDF torna-se o documento que agora tem o conteúdo final revisto, e o conteúdo inicial está fora de sincronia com ele. Então, se as necessidades de conteúdo iniciais para estar em outro lugar (como em um site), é preciso recriá-lo a partir do arquivo PDF.
gerar o arquivo PDF vai me ajudar a resolver estes dois problemas. Talvez alguma forma em que o designer gráfico cria um "modelo" e, em seguida, coloca em tags / suportes e mapeia estas tags / titulares aos dados pertinentes.
Graças: -)
Solução
Existem algumas ferramentas lá fora para fazer isso. XSL-FO é útil. Aqui é um tutorial para criar um PDF a partir de xml (ou XHTML) com casulo. Veja também Apache FOP .
Você pode formatar os dados SQL como XML e ainda usar os mesmos modelos desta forma.
Outras dicas
Eu uso a biblioteca ReportLab python para isso. É, talvez, poderia resolver o seu problema, mas você terá que fazer algum trabalho ...
No passado, eu ter escrito scripts que cuspir LaTeX então utilizado texi2pdf para resolver este tipo de problema.
Dê uma olhada em iReport e JasperReports em http://jasperforge.org . iReport permite criar relatórios e, em seguida, você pode programaticamente preenchê-lo com a biblioteca JasperReports (Java), ou simplesmente usar o iReport para criar manualmente o relatório.
Eu só tê-lo usado para dados tabulares, mas eu não acho que haveria qualquer problema para outros tipos de documentos.
Você pode criar um formulário e preencher as entradas programaticamente usando uma biblioteca de pdf como iText (Java).
Dê uma olhada Príncipe XML . Esta ferramenta permite gerar PDF baseado em XML ou HTML e CSS.
Uma forma possível é usar um modelo de motor, como FreeMarker ou StringTemplate: estes são muitas vezes utilizados para gerar HTML, mas eles são bastante flexível para saída de qualquer formato, na verdade
.
O problema é fazer um modelo PDF, suponho. Talvez você pode tomar um exemplo de saída e editá-lo para substituir os dados com espaços reservados para ser preenchido pelo modelo de motor. Pode não ser trivial!
soa como um trabalho que SQL Server Reporting Services pode lidar com bastante facilidade.
Reporting Services permite-lhe consultar os dados, definir o layout, e exportação para PDF sem qualquer intervenção. A saída PDF podem ser distribuídos via email, armazenado em um compartilhamento de arquivos, e acessada através de uma página no servidor de relatório.
Ele pode lidar com fontes de dados XML também.
Você pode combinar CSStoXSLFO com XEP de RenderX para a saída de alta qualidade. Com esta solução é possível mesclar dados XML em um modelo XHTML, que é decorado com CSS. Ele também pode gerar gráficos com a biblioteca JFreeChart fantástico. recursos de mídia página CSS3 são suportadas.