XFA PDF ファイルがあります (私が作成したものではありません)。これは、私が記入しようとしているサードパーティのフォームです。フォームに手動で入力し、iTextSharp を使用して、そこから完全な XML DomDocument を保存しました。今、同じ XML ファイルをプログラムで適用しようとしています。ただし、結果の PDF にはフィールドが入力されていません。これは、XML ファイルを適用するために使用しているコードです。
PdfReader pdfReader = new PdfReader(inputPdf);
using (MemoryStream ms = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(pdfReader, ms, '\0', true))
{
XfaForm xfaForm = new XfaForm(pdfReader);
XmlDocument doc = new XmlDocument();
doc.Load(inputXml);
xfaForm.DomDocument = doc;
xfaForm.Changed = true;
XfaForm.SetXfa(xfaForm, stamper.Reader, stamper.Writer);
}
var bytes = ms.ToArray();
System.IO.File.WriteAllBytes(outputPdf, bytes);
}
inputPdf は、元の空の PDF ファイルへのパスです。
inputXml は、記入済みの PDF ファイルから抽出された XML ファイルへのパスです。これは XML ファイル全体であり、データセット セクションだけではありません。
興味深いのは、代わりに次のように PdfStamper オブジェクトを作成した場合です。
new PdfStamper(pdfReader, ms);
次に、フィールドにデータが表示されますが、もちろん、追加しないことに関連する問題があります。
私が間違っているかもしれないことについて何か提案はありますか? 保存する DomDocument への変更を取得できないようです。