使用PDFBox验证电子签名

时间:2018-01-11 15:30:01

标签: pdf adobe pdfbox acrobat electronic-signature

我的公司已经要求Java Web服务实现从PDF表单中提取数据,以便使用Apache PDFBox启动直接处理客户端操作的功能。很容易。困难的部分是表格是由我公司的客户代表最终客户提交的,但最终客户签名必须经过验证。

签署这些表格的商业案例是通过非正式的电子签名(湿签名的数字表示)流程,如签名"邮票"在Adobe Reader中,带有客户签名的图像或iPad上的触摸屏绘图。到目前为止,我无法始终如一地验证此类签名,甚至无法始终如一地保持PDF状态,以便在此类签名仪式之后仍可由PDFBox读取。

通过数字签名表单字段验证签名是微不足道的,我已将其传达给我们的业务。但是,由于这些情况下的签名者通常是使用任何机器的数字证书的所有者,并且假设大多数这些交互将在客户办公室进行。

我在这里有几个选择:

  1. 弄清楚如何一致地识别电子签名,并为客户教育再现无损签约仪式。
  2. 如果可能,请更改数字签名表单字段以接受电子签名,如果可能的话。
  3. 我使用最新版本的Acrobat将一个图像表单字段放在签名区域上稍作解决方法,除了一件事情之外它很有效:我尝试过的所有软件都将此表单字段类型读取为按钮。有没有办法强制它识别图像,或任何更新的PDF阅读软件,并可以检测到这些字段?
  4. 我想上传几个示例PDF,但当然他们是所有公司的专有信息。我只想说我们没有任何巫师用表格做惊人的事情......他们都是你的基本AcroForms,我试图弄清楚如何配置签名区域。

    谢谢。

1 个答案:

答案 0 :(得分:1)

关于你的实际问题:

  

我在使用最新版本的Acrobat将一个图像表单字段放在签名区域上时有一个小小的解决方法,除了一件事之外,它的效果很好:我尝试过的所有软件都将此表单字段类型作为按钮读取。有没有办法强制它识别图像,或任何更新的PDF阅读软件,并能检测到这些字段?

任何将这些字段识别为按钮的PDF阅读软件都是最新的,至少在这方面,因为...... PDF文件格式中没有“图像形式字段”!

某些PDF创建者使用按钮表单字段模拟图像表单字段,该字段通过JavaScript获取图像表单字段的行为。当然,这种模拟是不完整的。特别是这样一个字段中的图像不是表单字段的,而只是它的外观

因此,如果要实现从这样的模拟图像表单字段中读取值,则必须提取按钮的外观

对整个场景的一些评论:

  

......必须验证最终客户签名。

     

签署这些表格的商业案例是通过非正式的电子签名(湿签名的数字表示)流程

与基于证书的数字签名相比,您几乎无法对这种称为“验证”的签名做任何事情。

好的,您可以在某些模拟图像字段中查找PDF中的图像,但您无法保证在该图像上可以看到其湿签名的人以该表单形式支持数据,更不用说亲自签名了。正如其他人可能只是从一些不同的手工签名文档中扫描过该人的签名,并使用该扫描填写表格......

  

到目前为止,我无法始终如一地验证此类签名

应该可以提取大多数这样的湿签名

  • 作为直接或间接添加到页面内容的位图图像,
  • 或直接或间接添加到某些注释外观(例如按钮)的位图图像,
  • 墨水注释的 InkList 路径
  • PolyLine 注释的顶点路径

如果是位图图像,请不要忘记提取图像蒙版(如果适用)。许多应用程序使用笔颜色填充基本图像,并在蒙版中包含实际的签名图。

  

甚至无法始终如一地保持PDF状态,以便在此类签名仪式之后仍可由PDFBox读取。

这听起来像执行签字仪式的软件的不当行为。但是,除非您分享这方面的例子,否则很难帮助您分析问题。