2

動的に生成された 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 です。

どんな助けでも大歓迎です。

4

1 に答える 1

0

画像フィールドを追加するために、(Adobe LiveCycle で) XDP ファイルを変更することになりました。次に、画像を表す Base64 でエンコードされた文字列をそのフィールドに入力しました。どうもありがとう。

于 2013-06-14T18:05:19.337 に答える