我公司需要采取一种在正式PDF上加盖电子图章的方法,以确保其完整性。我的一些同事听说过OpenPDF已经完成了,但是到目前为止,在Internet上搜索什么都没有发现。
仅使用OpenPDF能否有效地实现这一目标?还是存在其他图书馆?在这种情况下,我更喜欢免费图书馆,但是如果只有商业选择,我想先尝试一下,以便了解我是否能够使用它们以及我的上级是否要承担经济风险。
这是维基百科中电子封条的定义:
合格的电子印章是针对欧洲内部市场内的电子交易,符合欧盟法规910/2014(eIDAS法规)的电子印章。它使您可以长时间验证文档的发行者。合格的电子图章可被视为等同于法律实体纸上印章的数字形式。根据eIDAS法规,必须由合格的电子设备并根据合格的电子印章证书创建合格的电子印章。
最佳答案
印章和签名
首先,在对该问题的评论中对电子图章和签名进行了一些讨论。
在法律上(在eIDAS的背景下),它们之间是严格不同的。但是从技术上讲,两者通常都实现为数字签名,而在PDF中更精确地实现为PAdES签名。主要区别在于所使用的签名者证书,这些签名者证书表明您具有电子印章或签名。
因此,问题归结为OpenPDF是否支持创建PAdES签名。
OpenPDF和PAdES
OpenPDF是iText的最新非AGPL版本的分支,即非官方发行的iText 4.2.0 Bruno Lowagie标记在2009-11-27 13:59:39。在那年,ETSI刚刚发布了PAdES签名的第一版,作为技术规范(TS)而非欧洲标准(EN)。
因此,当时的iText库不包含任何显式的PAdES支持,仅针对可互操作的ISO 32000-1签名类型。但是,它提供了一个选项,可以自己创建签名字典并注入自己的定制签名容器。因此,通过使用此选项,您不仅可以使用ISO 32000-1兼容性配置文件,还可以使用BES和EPES配置文件来创建PAdES签名。
从那时起,OpenPDF签名API几乎没有改变。因此,仍然没有对PAdES的明确支持,但是开放了接口以注入签名字典和签名容器,以创建与简单的PAdES配置文件(Baseline-B,Baseline-T,E-BES,E-EPES)匹配的签名。
因此,关于您的问题
仅使用OpenPDF能否有效地实现这一目标?
OpenPDF可以使用,但根据您想要的确切配置文件,您必须添加一些代码以相应地生成签名字典和签名容器。
还是存在其他图书馆?
是。例如
同时,iText(OpenPDF在很久以前就是由它派生的)得到了进一步开发,并包含了一些更明确的PAdES支持。
用于PDF签名的CEF eSignature Digital Signature Services suite使用PDFBox或OpenPDF作为基本PDF库,但构建其自己的签名字典和签名容器。
...
(但是,对于库建议,请使用Software Recommendations Stack Exchange而不是堆栈溢出,严格来说,它们不在此处。)