2013-05-31 3 views
1

У меня есть файл PDF с формами XFA, который я могу успешно заполнить с помощью динамически созданного XML-файла.iTextSharp - динамически добавленное изображение не отображается в Acrobat Pro, но оно отображается в Foxit Reader

Теперь я пытаюсь вставить изображение (файл подписи в формате JPG), для которого я пробовал несколько способов, с «частичной» удачей.

Я попытался это: How can i set an image to a pdf field in existing pdf file?

И это: How can I insert an image with iTextSharp in an existing PDF?

Я имел в виду "частичный" удачи, потому что изображение не показывают в Foxit Reader, но не показывает в Acrobat Pro.

Любая помощь будет очень признательна.

EDIT:

Это код, я использую, чтобы заменить поле кнопку с изображением.

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.

Любой помощь будет очень, высоко оценена.

+0

Если ваш документ является чистым документом xfa, изменения содержимого страницы PDF не должны отображаться при показе PDF. Ответы, на которые вы ссылаетесь, по крайней мере частично работаете с содержимым страницы PDF. Это неудивительно, что их результаты не показаны акробатом. Однако, конечно, пожалуйста, покажите соответствующий код и образец PDF. – mkl

+0

Добавлен код. Любая помощь будет очень, очень ценится. Спасибо. –

+0

Ну, код, добавляющий к содержимому, окончательно добавляет к обычному содержимому страницы, которое игнорируется в случае xfa-форм. Я не очень уверен в комментариях ... Боюсь, что вам придется изменить XML-файл xfa в PDF для ваших требований. – mkl

ответ

0

В результате я изменил файл XDP (в Adobe LiveCycle), чтобы добавить поле изображения. Затем я заполнил это поле строкой, кодированной Base64, представляющей изображение. Большое спасибо.

Смежные вопросы