動的に生成された XML ファイルを介して正常に入力できる XFA フォームを含む PDF ファイルがあります。
今、「部分的な」運で、複数の方法を試した画像(手作りのJPG署名ファイル)を挿入しようとしています。
私はこれを試しました: 既存のpdfファイルのpdfフィールドに画像を設定するにはどうすればよいですか?
そしてこれ: 既存の PDF に iTextSharp を使用して画像を挿入するにはどうすればよいですか?
画像は Foxit Reader では表示されますが、Acrobat Pro では表示されないため、「部分的な」幸運を意味しました。
どんな助けでも大歓迎です。
編集:
これは、ボタン フィールドを画像に置き換えるために使用しているコードです。
private void InsertSignatureIntoBOL(string inputFile, string fieldName, byte[] imageFile, string outputFile)
{
using (PdfStamper stamper = new PdfStamper(new PdfReader(inputFile), File.Create(outputFile)))
{
AcroFields.FieldPosition fieldPosition = stamper.AcroFields.GetFieldPositions(fieldName)[0];
PushbuttonField imageField = new PushbuttonField(stamper.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;
stamper.AcroFields.RemoveField(fieldName);
stamper.AddAnnotation(imageField.Field, fieldPosition.page);
stamper.Close();
}
}
また、このコードを試して、画像を絶対位置に追加しました」
var pdfContentByte = stamper.GetOverContent(1);
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(Convert.FromBase64String(SignatureHiddenField.Value));
image.SetAbsolutePosition(100, 100);
pdfContentByte.AddImage(image, false);
Acrobat Pro で画像を表示する唯一の方法は、フォームをフラット化することですが、同じフォームの XFA フィールドにも入力します。フラット化すると、XFA フィールドは空として表示されます。前述したように、Foxit Phantom では素晴らしく機能しますが、私の主な関心は Acrobat Pro です。
どんな助けでも大歓迎です。