J'ai un fichier PDF contenant des formulaires XFA, que je peux remplir avec succès grâce à un fichier XML généré dynamiquement.
J'essaie maintenant d'insérer une image (un fichier de signature JPG fait à la main), pour laquelle j'ai essayé de multiples façons, avec une chance "partielle".
J'ai essayé ça : Comment puis-je définir une image dans un champ pdf dans un fichier pdf existant ?
Et ceci : Comment puis-je insérer une image avec iTextSharp dans un PDF existant ?
Je voulais dire "chance partielle" car l'image s'affiche dans Foxit Reader, mais pas dans Acrobat Pro.
Toute aide sera très, très appréciée.
EDIT :
Voici le code que j'utilise pour remplacer un champ de boutons avec une image.
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();
}
}
J'ai également essayé ce code pour ajouter une image à une position absolue"
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);
La seule façon de faire apparaître les images dans Acrobat Pro est d'aplatir le formulaire, mais je remplis également des champs XFA dans le même formulaire et, une fois aplati, les champs XFA sont affichés comme vides. Comme je le mentionnais, cela fonctionne à merveille dans Foxit Phantom, mais je m'intéresse surtout à Acrobat Pro.
Toute aide serait très, très appréciée.