使用PDFBox验证电子签名

使用PDFBox验证电子签名,pdf,adobe,pdfbox,acrobat,electronic-signature,Pdf,Adobe,Pdfbox,Acrobat,Electronic Signature,我的公司已经请求使用JavaWeb服务实现从PDF表单中提取数据,以启动使用ApachePDFBox的客户端操作的直通处理功能。很简单。困难的是,表格是由我公司的客户代表最终客户提交的,但最终客户的签名必须经过验证 签署这些表格的商业案例是通过非正式的电子签名(湿签名的数字表示)过程,如Adobe Reader中带有客户签名图像的签名“戳”,或iPad上的触摸屏绘图。到目前为止,我一直无法一致地验证这种类型的签名,甚至无法一致地维护PDF状态,以便在这种类型的签名仪式之后,PDFBox仍然可以读

我的公司已经请求使用JavaWeb服务实现从PDF表单中提取数据,以启动使用ApachePDFBox的客户端操作的直通处理功能。很简单。困难的是,表格是由我公司的客户代表最终客户提交的,但最终客户的签名必须经过验证

签署这些表格的商业案例是通过非正式的电子签名(湿签名的数字表示)过程,如Adobe Reader中带有客户签名图像的签名“戳”,或iPad上的触摸屏绘图。到目前为止,我一直无法一致地验证这种类型的签名,甚至无法一致地维护PDF状态,以便在这种类型的签名仪式之后,PDFBox仍然可以读取它

通过“数字签名表单”字段验证签名很简单,我已经向我们的业务部门传达了这一点。然而,由于在这些情况下,签名者通常是正在使用的任何机器上的数字证书的所有者,并且假设大多数交互将在客户办公室进行

我有几个选择:

  • 了解如何始终如一地识别电子签名,并为客户教育再现无损签名仪式
  • 如果可能的话,对数字签名表单字段进行更改,以接受电子签名
  • 我使用最新版本的Acrobat在签名区域上放置了一个图像表单字段,这是一个很好的解决方法,除了一件事:我尝试过的所有软件都将此表单字段类型作为按钮读取。有没有办法强迫它去识别一张图片,或者任何更新的PDF阅读软件,可以检测到这些字段
  • 我想上传一些PDF示例,但它们当然都是公司的专有信息。我只想说,我们没有任何巫师用表单做惊人的事情。。。它们都是您的基本AcroForms,我正在尝试了解如何配置签名区域


    谢谢。

    关于您的实际问题:

    我使用最新版本的Acrobat在签名区域上放置了一个图像表单字段,这是一个很好的解决方法,除了一件事:我尝试过的所有软件都将此表单字段类型作为按钮读取。有没有办法强迫它去识别一张图片,或者任何更新的PDF阅读软件,可以检测到这些字段

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

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

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


    关于整个场景的一些评论:

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

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

    与基于证书的数字签名相比,您很难对此类签名进行任何值得称为“验证”的操作

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

    到目前为止,我无法一致地验证这种类型的签名

    应该可以提取大多数此类湿签名

    • 作为直接或间接添加到页面内容的位图图像
    • 或直接或间接添加到某些注释外观(例如按钮)的位图图像
    • 或者作为墨水注释的墨水列表路径
    • 或作为多段线的顶点路径
    如果是位图图像,请不要忘记提取图像掩码(如果适用)。许多应用程序使用钢笔颜色填充基础图像,并在掩码中包含实际的签名图

    甚至无法始终保持PDF状态,以便在此类签名仪式后PDFBox仍能读取


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

    你真正想要的只是第3项中问题的答案吗?或者你还需要一些关于剩余情况描述的信息吗?我读了你下面的回复,你已经用语言表达了我一直在努力告诉我们的业务;电子签名实际上只是一个美化的复选框。也就是说,我将非常感谢您对这个流程的任何其他想法或解决方案。从本质上讲,他们希望在不提供前端的情况下取代电子签名服务的使用。这并没有让我的任务变得那么容易……你说这是关于你的公司和你公司的客户。所以你认识每个客户。因此,您可以创建一个小型的私有证书颁发机构,并自己向客户机颁发证书。然后,他们可以使用这些证书(以及相关的私钥)进行数字签名。这可以通过ado实现