我当前试图用itextSharp填写预定义的表单。除了添加图像外,所有功能都很好。这已经使用了Adobe的FDF工具包,该工具包已编译为.NET 1.1。这不再使用.NET 4.0,我切换到ItextSharp。以前添加图像的方式是通过以预定义的形式更改按钮的图标。旋转并正确缩放了图像。不幸的是,我找不到任何使用ItextSharp做到这一点的方法。代码是:
FdfAcX_Doc.FDFSetAP("img", 0, "path\to\img.pdf", 1);
(doc:http://www.adobe.com/content/dam/adobe/en/devnet/acrobat/pdfs/fdftkref.pdf)
现在,我正在尝试ItextSharp并尝试手动添加图像,例如:
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);
但不幸的是,首先,图像没有旋转,其次图像太大了。我尝试了几个设置,但无法达到正确的设置。有人知道我做错了什么吗?
PDF表格可以在此处下载:http://www26.zippyshare.com/v/24914063/file.html
请帮忙,我已经坐了一天了,再也想不起。谢谢!
您的代码样本与标题中的问题不一致。
在您的代码示例中,您将图像添加到页面的内容中。在您的标题中,您要求在按钮字段中替换图标。按钮字段不是内容的一部分。使用小部件注释可视化它们。
我会期望这样的代码:
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);