adobe reader java_PDF显示福昕阅读器中的签名,但不显示Adobe Reader

这个答案集中在第一个问题上:

这是为什么?

虽然我对Syncfusion PDF库没有任何经验,但我不知道具体是什么

可以做到解决这个问题,以便Adobe能够识别它 .

PDF对象结构

08b1f1dce59317d876dae1bd303a5f3d.png

破碎的字段层次结构

在上面的屏幕截图中,可以看到 AcroForm 字典中的 Fields 数组有一个条目,即字段对象 12 0 .

字段对象 12 0 仅具有本地名称(值 T :"Signature")和 Kids 后代字段对象数组,其中包含单个后代条目,字段对象 9 0 .

字段对象 9 0 也有一个本地名称(也是"Signature";因此它的完全限定字段名称是 Signature.Signature )和许多其他条目,其中大部分都可用于签名字段和窗口小部件 . 它没有 Parent 条目 .

根据PDF规范,字段中的 Parent 条目是

如果此字段是字段层次结构中另一个字段的子项,则为必需(ISO 32000-1,表220 - 所有字段字典共有的条目)

其 Annots 引用中的文档(对象 5 0 )的单个页面引用字段对象 9 0 作为窗口小部件注释 .

因此,来自 AcroForm 字典 Fields 数组,字段对象 9 0 是另一个字段的后代,并具有完全限定名称 Signature.Signature .

但是通过 Annots 来自页面,字段对象 9 0 没有父对象,因此显示为具有完全限定名称 Signature 的根字段 .

因此,签名字段的身份不清楚 .

请求重绘

此外,在上面的对象结构中可以看到 AcroForm 字典中的 NeedAppearances 标志设置为 true .

这会询问PDF查看器

为文档中的所有窗口小部件注释构造外观流和外观词典 . (ISO 32000-1,表218 - 交互式表格字典中的条目)

在此过程中,Adobe Reader会删除结构破坏的注释 . 如上所述,您的签名字段的字段结构已被破坏 .

进一步的特点

签名字段的一些条目有点奇怪:

BS 和 MK 是用于为窗口小部件生成标准外观的数据 . 通常情况下,可见签名会带来他们的自定义签名外观,您的也是如此 . 那么这些 Value 观是什么?

DA ,默认外观字符串,用于格式化可变文本注释的文本,例如 FreeText 注释或文本字段,但为什么 DA 在签名字段中?

该怎么做

显然应该清除错误和特点 . 如上所述,我对Syncfusion PDF库没有任何经验,所以我无法告诉你如何做到这一点 .

但有一点提示:我怀疑Syncfusion PDF库在创建签名时经常会产生这样的废话,因此您想要签名的文档很可能有些特殊,请检查一下 . 例如 . 如果原始文档已经包含名为“签名”的表单字段,则破坏的结构可能是某些Syncfusion代码尝试将新签名字段与旧字段合并的结果 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值