我使用过各种方法(本网站其他地方提到过)来创建 PDF,使用打印机驱动程序或从 PostScript 转换等。常见的问题是,如果我在较新版本的 Adobe Reader 中打开任何输出文件,则有一个“放置签名”选项,但它是灰色的,或者显示一条错误消息,提示该功能已针对此文档禁用。据我所知,在文档元数据的某个地方设置了一个选项,告诉 Reader“允许用户签署此文档”,或者不允许用户签署。其他 SU 帖子中链接的免费/开源工具都没有将此列为选项(尽管公平地说,我实际上并没有下载并尝试过所有这些工具)。
有没有可以实现这个功能的工具?我可以用十六进制编辑器打开这个功能吗?我可以有时访问 Acrobat Professional 以启用此选项,但对每个需要的情况都这样做会比我愿意做的要多得多。单页文档的当前解决方法是:
- 将文档打印为 PDF(可能通过 postscript)
- 在 Reader 中打开单页空白 PDF,并启用“可签名”功能
- 使用 Reader 标记工具创建自定义“图章”,方法是导入打印文档
- 在空白页上“盖印”打印文档的图像,希望它能居中
- 在文件上签名(但不是真的)
这显然不能很好地扩展。如果我能做到以下几点就更好了:
- 将文档打印为 PDF
- 将文档拖到一个简单的快捷方式/工具/任何
- 在 Reader 中打开文档
- 在文档中签名
ETA:抱歉,也许我应该说得更清楚一点——我说的是 Adobe Reader 中提供的基于证书的数字签名,而不是添加虚拟墨水签名。此外,任何解决方案都必须离线可用。
答案1
看到这篇文章后,我发现了一款名为数码签名者它的唯一功能是对现有 PDF 进行签名,无论 Reader 是否允许。之后,Reader 会 100% 显示并验证签名。这是一种解决方法,但远不如您的方法复杂。它允许使用不可见的签名和可见的印章。有一些问题:
- 它的渲染器无法显示连字符,但一旦签名并重新打开它就和原来一样了)
- 对我来说,最大的缺点是它不能使用公钥加密或设置“可签名”位,以便 Reader 对其进行签名。
答案2
嗯,PDF 1.7 规范中的这段话看起来不太令人鼓舞:
12.8.2.3 乌尔
UR 转换方法应用于检测文档的更改,该更改将使使用权限签名无效,该签名引用自权限字典中的 UR3 条目(参见 12.8.4,“权限”)。使用权限签名应用于启用符合要求的阅读器中默认情况下可能不可用的附加交互功能。签名应用于验证权限是否由真正的授权机构授予。转换参数字典(参见表 255)指定在签名有效时应启用的附加权限。如果签名无效,因为文档已被以不允许的方式修改或签名者的身份未被授予扩展权限,则不应授予附加权限。
例子
Adobe Systems 使用公钥加密技术授予权限以启用 Adobe Reader 中的其他功能。它使用证书颁发机构向与其建立业务关系的文档创建者颁发公钥证书。Adobe Reader 会验证启用权限的签名是否使用来自 Adobe 授权证书颁发机构的证书。其他符合要求的阅读器可以自由地将同一机制用于自己的目的。
答案3
查看https://www.fillanypdf.com/将允许您在线填写和签署pdf。
答案4
我使用过以下供应商的工具并取得了一些成功,通过对其网站的快速 Google 搜索,似乎他们的免费查看器至少支持签名,他们的 PDF 创建软件可能会满足您的要求: