首页 > 解决方案 > iText7 文本值被隐藏

问题描述

我有一个带有可编辑字段的安全PDF 模板。当我设置一个字段的值时,它不会显示,直到我点击它并修改它。

将值插入字段的代码:

static void Main(string[] args)
    {
        using (PdfReader reader = new PdfReader(desktopPath + "PdfTemplate.pdf"))
        {
            reader.SetUnethicalReading(true);
            using (PdfDocument pdfDocument = new PdfDocument(reader, new PdfWriter(desktopPath + "ModifiedPdfTemplate.pdf")))
            {
                PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDocument, true);
                IDictionary<string, PdfFormField> fields = form.GetFormFields();
                fields["Date"].SetValue("DATE");
            }
        }
    }

这是未经编辑的字段的样子:

在此处输入图像描述

运行代码后,该字段仍然像以前一样,但是如果我单击它,则会有一个值:

在此处输入图像描述

在我修改了该字段(在末尾添加了一个空格)之后,现在它显示了文本:

在此处输入图像描述

我认为这是因为球场上有一些造型。我怎样才能达到最后一张图片所示的效果?

软件版本:

文本-​​> 7.1.16

Adobe Acrobat -> 2020.009.20063

标签: c#pdftextstylingitext7

解决方案


在此处重现问题的尝试失败后,下一步是比较所涉及的软件版本。

将 iText 版本同步到当前的 7.1.16 仍然会产生不同的观察结果。

但随后更新 PDF 查看器 Adob​​e Acrobat (Reader) 终于解决了这个问题。

显然 Acrobat 2020.009.20063 无法正确显示该字段,而 Acrobat 2021.001.20155 和 2021.007.20091 成功。

(有人可能会认为,字段值显示等基本功能在 Acrobat 中应该已经稳定多年。但显然这里仍然发生变化。这可能与最近几个月和几年来加强签名表格的防伪有关。)


推荐阅读