2016-09-14 5 views
2

私はpdfを書き込むためにiTextを使用しています。このpdfには、からのxfaが含まれています。このフォームをxmlファイルに入力します。フォームを記入した後、ユーザーはそれをダウンロードして手動で署名する必要があります。これまでのところ、すべてのフィールドがうまく機能し、フォームが適切に埋められています。ユーザーがファイルadobe readerに署名すると、署名付きの新しいファイルのコピーを作成します。itextを使用してpdfを埋め込む際にエラーが発生しました

しかし、ユーザーがそのpdfに署名しようとすると、次のエラーが発生し、新しく生成された署名付きファイルはデータを保存しません。すべてのフィールドが空白になります。

少なくとも一つの署名が問題

ユーザサインPDFアドビリーダーはまた、署名検証にポップアップを与える

を有する

enter image description here

しかし、私は使用せずに手動で同じPDFを満たす場合itextそれは私がpdfに首尾よく署名することを可能にする

これは私が記入するのに使用しているコードですXMLデータとPDF:

public static byte[] FillXfaForm(byte[] byteArray, String xmlFilePath) 
{ 
      PdfReader reader = new PdfReader(byteArray); 

      using (MemoryStream ms = new MemoryStream()) 
      { 
       using (PdfStamper stamper = new PdfStamper(reader, ms,'\0',true)) 
       { 
        stamper.Writer.CloseStream = false; 
        stamper.AcroFields.Xfa.FillXfaForm(xmlFilePath); 
       } 
       if(File.Exists(xmlFilePath)) 
       { 
        File.Delete(xmlFilePath); 
       } 
       return ms.ToArray(); 
      } 
} 

そして、ここでは、この問題を解決するために私を助けてください、エラーメッセージ

enter image description here

のスクリーンショットです。

+0

問題を再現できるように、問題のPDFとXMLを共有してください。 – mkl

+0

セキュリティ上の理由により、私はpdfを提供できません。 –

+0

@mkl必要ならば詳細を教えてください。 –

答えて

0

最後に、私はこの問題の原因は、私はデータのみの一部ではない、それはエラーなしに動作し、全体のXMLを更新するとき、私はからXFAを埋めるためにXML文書全体を更新するが、ということである。この問題

を修正します。

"Bruno Lowagie"という完全なXML置換を使用するか、データ部分のみを変更することができるというこの似たような質問で実際に作成される違いはわかりません。

How can I set XFA data in a static XFA form in iTextSharp and get it to save?

しかし、私にとって、それは私が、私は、データ部全体ではなく、XMLデータを交換する場合にのみ、文書に署名することができます。

私はそれが同様の問題に直面するのを助けることを願っています。

関連する問題