我想以编程方式签署在Adobe Livecycle (它是XFA表单)中创建的PDF文档。
我知道用于操作PDF的iText库,但我还没有找到任何如何对其签名的示例。
也许它还不被支持。你知道有其他的Java库可以做到这一点吗?或者你知道怎么签名吗?
我知道,我的问题是similar to this opened question,但我不需要使用iText。
非常感谢您的帮助!
发布于 2014-02-14 19:29:04
这是一个小示例,展示了如何使用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 (如果我错了,请纠正我)。
https://stackoverflow.com/questions/21749485
复制相似问题