如何使用iText使用XFA表单对PDF文件进行数字签名

如何使用iText使用XFA表单对PDF文件进行数字签名,itext,digital-signature,xfa,Itext,Digital Signature,Xfa,iText发行说明提到,iText版本5.4.2和5.4.3支持使用XFA表单签署PDF: 有关于如何在Java中进行签名的文档吗 我特别感兴趣的是使用XFA签署PDF,其中有一个准备好的签名字段。这是一个演示如何使用XmlDSig签名的小示例: PdfReader reader =new PdfReader(src); FileOutputStream os =new FileOutputStream(dest); PdfStamper stamper = PdfStamper.cre

iText发行说明提到,iText版本5.4.2和5.4.3支持使用XFA表单签署PDF:

有关于如何在Java中进行签名的文档吗


我特别感兴趣的是使用XFA签署PDF,其中有一个准备好的签名字段。

这是一个演示如何使用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(如果我错了,请纠正我)