【问题标题】:How to change a Button Icon of a PDF Formular with itextsharp?如何使用 itextsharp 更改 PDF 公式的按钮图标?
【发布时间】:2012-10-23 08:36:40
【问题描述】:

我目前正在尝试使用 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

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

【问题讨论】:

    标签: c# pdf itextsharp fdf


    【解决方案1】:

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

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

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

    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);
    

    【讨论】:

    • 您好,谢谢您的回答。我几乎不知道如何使用替换方法来处理它,这就是为什么我试图手动将图像放在那里。您的代码运行良好,除了宽度与高度不成比例,即使很难我设置了以下字段: ad.Layout = PushbuttonField.LAYOUT_ICON_ONLY; ad.ScaleIcon = PushbuttonField.SCALE_ICON_ALWAYS; ad.ProportionalIcon = true; ad.IconFitToBounds = true;有什么想法吗?
    • 请说明:您是说不尊重纵横比吗?或者你是说不应该尊重纵横比?如果你能澄清一下,我会看一下代码内部,看看哪个选项触发了哪个行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多