2

我目前正在尝试使用 itextsharp 填写预定义的表单。除了添加图像外,一切都很好。这已经在 Adob​​e 的 FDF 工具包中工作过,该工具包被编译成 .NET 1.1。这不再适用于 .NET 4.0,我切换到 itextsharp。之前添加图像的方式是通过更改预定义形式的按钮图标。正确旋转和缩放图像。不幸的是,我找不到使用 itextsharp 执行此操作的任何方法。代码是:

FdfAcX_Doc.FDFSetAP("img", 0, "path\\to\\img.pdf", 1);

(文档: 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

请帮忙,我已经坐在这个问题上一天了,想不出更多了。谢谢!

4

1 回答 1

3

您的代码示例与标题中的问题不一致。

在您的代码示例中,您将图像添加到页面的内容中。在您的标题中,您要求替换按钮字段中的图标。按钮字段不是内容的一部分。它们使用小部件注释进行可视化。

我希望代码看起来像这样:

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);
于 2012-10-23T10:37:09.530 回答