私はこの問題に苦労しています。ユーザーが入力できるように、フィールドを含む PDF ファイルがあります。
私はiTextSharp(vb.net上)を使用してPDFファイルを開き、フィールドを読み取り、データを書き戻します(そしてユーザーに表示します)。
Doc はロックされておらず、セキュリティ対策もありません。
私は次のように読みました。
Dim readerPDF As New PdfReader(Application.StartupPath & "\PDF\" & filename)
Dim pathTemp = IO.Path.GetTempFileName & ".pdf"
Dim stamperPDF As New PdfStamper(readerPDF, New IO.FileStream(pathTemp, IO.FileMode.Create))
Dim pdfFormFields As AcroFields = stamperPDF.AcroFields
次に、単純に pdfFormFields をループします (データベースに保存されている各フィールドのキーは既にあります。
For each f as field_keys
pdfFormFields.SetField(f, "dummy text")
Next
これはすべてのテキスト入力でうまく機能し、問題はありません。複数行のフィールドがあると、これは厄介なことになります。
このアプローチを使用して埋めると、次のようになります。
しかし、元の PDF ファイルを Adobe Reader で開いて同じように書くと、次のようになります。
だから… インターネットでこれを調べる方法さえ知りません。iTextSharp はこれをサポートしていませんか、それとも何か不足していますか?
編集: PDFへのリンク
編集: itext dll は古くなっています。最新のものをダウンロードしても、問題は引き続き発生します。