我想以编程方式签署在 Adobe Livecycle(它是 XFA 表单)中创建的 PDF 文档。
我知道用于处理 PDF 的 iText 库,但我还没有找到任何如何签名的示例。
也许它还不支持。你知道任何其他可以做到这一点的Java库吗?或者你知道如何签名吗?
我知道,我的问题类似于这个打开的问题,但我不需要使用 iText。
非常感谢您的帮助!
我想以编程方式签署在 Adobe Livecycle(它是 XFA 表单)中创建的 PDF 文档。
我知道用于处理 PDF 的 iText 库,但我还没有找到任何如何签名的示例。
也许它还不支持。你知道任何其他可以做到这一点的Java库吗?或者你知道如何签名吗?
我知道,我的问题类似于这个打开的问题,但我不需要使用 iText。
非常感谢您的帮助!
这是一个展示如何使用 XmlDSig 签名的小示例:
PdfReader reader =new PdfReader(src);
FileOutputStream os =new FileOutputStream(dest);
PdfStamper stamper = PdfStamper.createXmlSignature(reader, os);
XmlSignatureAppearance appearance = stamper.getXmlSignatureAppearance();
appearance.setXmlLocator(new XfaXmlLocator(stamper));
appearance.setXpathConstructor(new XfaXpathConstructor(XfaXpathConstructor.XdpPackage.Datasets));
ExternalSignature signature =new PrivateKeySignature(pk, digestAlgorithm,"BC");
//use signXmlDSig or signXades
MakeXmlSignature.signXmlDSig(appearance, signature, chain);
您也可以使用 XAdES 进行签名,但是您将无法在 Adobe 软件中验证签名,因为我认为 Adobe 不支持 XAdES(如果我错了,请纠正我)。