XFA表单的数字签名 [英] Digital Signing of XFA forms

查看:266
本文介绍了XFA表单的数字签名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想以编程方式签署在Adobe Livecycle(它是XFA格式)中创建的PDF文档.

I'd like to sign PDF documents created in Adobe Livecycle (it is XFA form) programmatically.

我知道用于处理PDF的iText库,但是还没有找到如何签名的示例.

I know about iText library for manipulating with PDFs, but I haven't found any example how to sign it yet.

也许它还不被支持.您知道其他可以做到这一点的Java库吗?还是您知道如何签名?

Maybe its not supported yet. Do you know any other Java library which can do that? Or do you know a way how to sign it?

我知道,我的问题是类似,但是我不需要使用iText.

I know, my question is similar to this opened question, but I don't need the use of iText.

非常感谢您的帮助!

推荐答案

这是一个小示例,展示了如何使用XmlDSig进行签名:

This is a small example showing how to sign using 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已经不支持XAdES(如果我错了,请更正),您将无法在Adobe软件中验证签名.

You can also sign using XAdES, but then you won't be able to validate the signature in Adobe software because I don't think Adobe already supports XAdES (please correct me if I'm wrong).

这篇关于XFA表单的数字签名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆