生成されたバーコード ファイルに基づいて画像を挿入する必要があります。
私が抱えている問題は、iTextSharp ライブラリを使用するときに、通常、次のようなテキストを入力できることです。
PdfReader pdfReader = new PdfReader(oldFile);
PdfStamper pdfStamper = new PdfStamper(pdfReader, outFile);
AcroFields fields = pdfStamper.AcroFields;
fields.SetField("topmostSubform[0].Page1[0].BARCODE[0]", "X974005-1");
pdfでクリックすると、フィールドに画像を挿入するように求められるフィールドが1つありますが、プログラムでこれを達成できないようです。いくつかのGoogle検索とstackoverflowページに出くわしたことに基づいて、希望どおりに動作することを期待して次のコードを挿入しました。
string fieldName = "topmostSubform[0].Page1[0].BARCODE[0]";
string imageFile = "test-barcode.jpg";
AcroFields.FieldPosition fieldPosition = pdfStamper.AcroFields.GetFieldPositions(fieldName)[0];
PushbuttonField imageField = new PushbuttonField(pdfStamper.Writer, fieldPosition.position, fieldName);
imageField.Layout = PushbuttonField.LAYOUT_ICON_ONLY;
imageField.Image = iTextSharp.text.Image.GetInstance(imageFile);
imageField.ScaleIcon = PushbuttonField.SCALE_ICON_ALWAYS;
imageField.ProportionalIcon = false;
imageField.Options = BaseField.READ_ONLY;
pdfStamper.AcroFields.RemoveField(fieldName);
pdfStamper.AddAnnotation(imageField.Field, fieldPosition.page);
私が抱えている問題は、意図したとおりに既存のフィールドを削除している間です。新しく作成した PDF ファイルを開くと、この新しいプッシュ ボタン フィールドが目的の画像ファイルではなく空白として表示されますが、デバッグでこれを実行すると表示されます。モード 少なくとも画像ファイルの正しい寸法を取得していることがわかるので、ここで何が間違っているのかわかりません。
アドバイスしてください、ありがとう。