如何使用 iText/C# 更改 PDF 表单中的按钮图标

How to change a button icon in a PDF form with iText/C#

我正在尝试改造使用旧版 Adob​​e Acrobat API 制作的旧版 C# 应用程序。此应用程序的功能之一是更改按钮的图标并更新按钮的标题。标题叠加在图标之上。

目前,我正在使用 iText 7 和 C# 编写应用程序。我已经准备好大部分功能,但我不知道如何向按钮添加标题和图标。我能够弄清楚如何分别添加标题和图标,但是当我尝试组合代码片段时,图标似乎覆盖了标题。

PdfButtonFormField button = (PdfButtonFormField)pdfForm.GetField(fieldName);
button.SetImage(tempFileLOGO);

var buttonObj = button.GetPdfObject();
buttonObj.GetAsDictionary(PdfName.MK).Put(PdfName.TP, new PdfNumber((int)PushButtonLayouts.LABEL_OVER));

pdfForm.ReplaceField(fieldName, button);

var fields = pdfForm.GetFormFields();
foreach (var f in fields)
{
    if (f.Key.StartsWith("sign_"))
    {
        f.Value.SetValue(fieldValue);
    }
}

此代码导致图标放置在按钮上,但我没有看到标题文本(变量名称 "fieldValue")

如有任何帮助,我们将不胜感激!

谢谢!

据我从 iText 代码中可以看出,如果按钮有图像,则在生成按钮外观时始终忽略其文本。

所以没有标准的方法来做到这一点。 我可以建议您先修改图片,在上面添加所需的文本,就像本例中所做的那样 https://itextpdf.com/en/resources/books/best-itext-7-questions-Whosebug/how-add-text-image

然后使用setImage方法设置一个新的