I'am currently trying to fill out a predefined Form with itextsharp. All works well except adding an image. I was able to do this using a different library by changing the icon of a button in a predefined form. That scaled the image correctly. Unfortunatly I couldn't find any method to do this with iTextSharp.
This is what I've tried so far. It adds the image at an absolute position:
PdfContentByte pdfContentByte = pdfStamper.GetOverContent(1); iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(picfile); iTextSharp.text.Rectangle imageRect = new iTextSharp.text.Rectangle(338f, 65f, 250f, 200f, 270); img.ScaleToFit(imageRect.Width, imageRect.Height); img.SetAbsolutePosition(65, 250); pdfContentByte.AddImage(img);
Your code sample simply adds an image to the content of a page. As you indicate, that's not what you want. You want to replace the icon in a button field. This can be done using this code snippet:
AcroFields form = stamper.AcroFields; PushbuttonField ad = form.GetNewPushbuttonFromField(buttonFieldName); ad.Layout = PushbuttonField.LAYOUT_ICON_ONLY; ad.ProportionalIcon = true; ad.Image = Image.GetInstance(pathToNewImage); form.ReplacePushbuttonField("advertisement", ad.Field);