Adobe の PDF/A に関する ISO 32000 仕様では、XFA データを PDF/A-2 確認 PDF の特別な場所に保存できると規定されています。その節の本文はこちら。
PDF/A-2 準拠ファイルへの XFA データセットの組み込み PDF/A-2 準拠ファイルをサポートするために、ExtensionLevel 3 は、XFAResources 名前ツリーを介して XML フォーム データ (XFA データセット) のサポートを追加します。ドキュメントカタログ。
(23 ページの「表 3.28 名前辞書のエントリ」を参照してください。) Acrobat フォーム (およびフォーム データ) は PDF/A-2 準拠ファイルで許可されていますが、XML フォームは許可されていません。このような XML フォームは、インタラクティブ フォーム ディクショナリから参照される XDP ストリームとして指定されます。XDP ストリームには、XFA データセットを含めることができます。
PDF ドキュメントを PDF/A-2 に変換するアプリケーションの場合、XFAResources ネーム ツリーは、PDF ドキュメント内の XDP ストリームから XFAResources ネーム ツリーへの XML フォーム データの再配置をサポートします。
XFAResourcesネーム ツリーは、文字列名とストリームへの間接参照で構成されます。文字列名は、ドキュメントが PDF/A-2 準拠のファイルに変換されるときに作成されます。ストリームには、要素で構成される XFA の要素が含まれます。
XML フォーム フィールドのデータ値に加えて、この要素を使用すると、フォーム フィールドにバインドされていないデータや 1 つ以上の XML 署名など、他のワークフローに役立つ可能性のある他の種類の情報を保存および取得できます。
参考文献の XML アーキテクチャ、XML Forms Architecture (XFA) 仕様、バージョン 2.6 を参照してください。
xml を渡す XFA フォームがあり、そのドキュメントを PDF/A-2 に変換する必要があります。
現在、これが可能かどうかを確認するために XFA Worker をテストしていますが、これを実行する XFA Worker のサンプルを見つけることができませんでした。
最初に XFA Worker でフラット化を試みましたが、データが完全に削除され、抽出できなくなりました。
Adobe が XFA Worker を使用して配置するように指示している場所に、XFA xml データをどのように取得しますか?
更新: ブルーノに感謝します。私のコードでは、XFA フォームを PDF/A-2 に変換できません。これが私が使用したコードです。
xfa.fillXfaForm(new ByteArrayInputStream(xmlSchemaStream.toByteArray()));
stamper.close();
reader.close();
try (ByteArrayOutputStream outputStreamDest = new ByteArrayOutputStream()) {
PdfReader pdfAReader = new PdfReader(output.toByteArray());
PdfAStamper pdfAStamper = new PdfAStamper(pdfAReader, outputStreamDest, PdfAConformanceLevel.PDF_A_2A);
....
com.itextpdf.text.pdf.PdfAConformanceException: Only PDF/A documents can be open in PdfAStamper というエラーが表示されます。
したがって、新しい PdfAStamper はコンバーターではなく、XFA PDF のバイト配列を読み取るだけであると想定しています。