2016-10-27 4 views
0

Nous avons une exigence des tribunaux pour soumettre des fichiers PDF dans lequel il y a des données intégrées au format xml. Tels que le xml est dans un formulaire XFA dans le PDF.Besoin d'ajouter xml comme XFA à un rapport Jasper pdf créé

Nous générons notre PDF à partir de rapports Jasper, puis générer le fichier XML que nous voulons ajouter. Le fichier PDF généré à partir de Rapports Jasper n'a pas de formulaire XFA pour commencer à importer le fichier XML.

Comment puis-je obtenir un formulaire XFA dans le PDF pour que je puisse y ajouter le xml des données?

+1

XFA sera obsolète dans PDF 2.0 (ISO-32000-2) pour être publié en 2017. JasperReports ne prend pas en charge XFA; AFAIK, PdfBox ne supporte pas non plus XFA. iText prend en charge XFA en ce sens qu'il vous permet d'insérer un flux XFA dans un modèle existant et que vous pouvez utiliser XFA Worker pour aplatir ce modèle. Vous pouvez créer un modèle XFA à l'aide d'Adobe LiveCycle Designer et remplir ce modèle avec iText. Vous ne pouvez pas créer un modèle XFA avec JasperReports. Je pense que vous utilisez les mauvais outils. BTW: iText développe une alternative pour XFA. Vous voudrez peut-être nous contacter. –

+0

Merci @BrunoLowagie Je souhaite que nous puissions utiliser non XFA, mais c'est hors de notre portée. J'ai laissé une réponse où j'ai obtenu un PDF interactif que je peux passer notre XML et remplir le formulaire. – user1567291

+1

Pouvez-vous donner un lien vers la décision exacte qui vous oblige à utiliser XFA? – mkl

Répondre

2

Merci @BrunoLowagie Malheureusement, le format/les règles de ce que nous pouvons utiliser sont hors de notre portée. Le PDF est défini par les tribunaux américains. Mais un collègue a pu me procurer une copie du fichier PDF du système des tribunaux américains, qui est un formulaire «interactif», c'est-à-dire XFA. J'ai donc pu obtenir les données dans le formulaire avec tout le travail que vous avez fait. l'ai fait avec iText.

En utilisant le code suivant. Tout a été obtenu à partir de votre excellent livre.

AcroFields form = stamper.getAcroFields(); 
XfaForm xfa = form.getXfa(); 
xfa.fillXfaForm(new ByteArrayInputStream(xmlSchemaStream.toByteArray())); 

Pour quiconque lisant ceci dans le futur. Si vous souhaitez ajouter XFA à votre fichier PDF via un code Java, la seule solution actuelle est Adobe LifeCycle dont l'application est UNIQUEMENT disponible sur Windows et vous devez l'installer pour que les fichiers jar soient utilisés. OH, attendez, ça devient encore mieux, vous incluez les fichiers jar client dans votre application. Ce qui signifie, oui vous l'avez deviné, vous devez installer une application serveur et l'exécuter dans JBoss, Weblogic ou Websphere. Donc, en fin de compte, il en coûtera beaucoup trop d'argent pour installer, gérer et maintenir quelque chose d'aussi stupide que d'ajouter un formulaire XFA à votre fichier .pdf.