c# - 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
解决方案
在此处重现问题的尝试失败后,下一步是比较所涉及的软件版本。
将 iText 版本同步到当前的 7.1.16 仍然会产生不同的观察结果。
但随后更新 PDF 查看器 Adobe Acrobat (Reader) 终于解决了这个问题。
显然 Acrobat 2020.009.20063 无法正确显示该字段,而 Acrobat 2021.001.20155 和 2021.007.20091 成功。
(有人可能会认为,字段值显示等基本功能在 Acrobat 中应该已经稳定多年。但显然这里仍然发生变化。这可能与最近几个月和几年来加强签名表格的防伪有关。)
推荐阅读
- c# - 从 uwp 调用双工 wcf 服务方法无效
- c# - 嵌套相同条件时,正则表达式不起作用
- css - 移动优化 CSS
- python - 用不同的方法寻找候选板
- windows - .lib(静态库)是否需要 .pdbs 或者 dll/exe pdbs 是否足够?
- php - 未处理为订单表 html 输入表单创建插入语句
- java - 运行 android 应用程序 (ionic cordova) 错误“无法找到到所请求目标的有效认证路径”
- mysql - 在 Impala 中创建表或视图时不同的行数
- android - React Native Eject 但仍然能够使用 React Native 代码
- php - 当我在 /var/www/html 中创建子文件夹时,RewriteRule 不起作用