1

私はこの問題に苦労しています。ユーザーが入力できるように、フィールドを含む 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 ファイルを Adob​​e Reader で開いて同じように書くと、次のようになります。

ここに画像の説明を入力

だから… インターネットでこれを調べる方法さえ知りません。iTextSharp はこれをサポートしていませんか、それとも何か不足していますか?

編集: PDFへのリンク

編集: itext dll は古くなっています。最新のものをダウンロードしても、問題は引き続き発生します。

4

2 に答える 2

0

この問題は、複数行フィールドのプロパティにある可能性があります。問題の 1 つは、固定フォントを使用していて、フィールドがオーバーフローしたときに画面上のテキストが切り取られる可能性があることです。フォントが Auto の場合、コントロールがいっぱいになるとフォントが縮小されます。

于 2016-11-10T15:45:20.790 に答える