PDF-如果用户未正确填写表单,则阻止/拒绝打印操作 处境

PDF-如果用户未正确填写表单,则阻止/拒绝打印操作 处境,pdf,printing,Pdf,Printing,该公司与客户签订了合同。合同的一部分要求客户机提供一些访问自己服务器的详细信息 合同以.doc格式发送给客户,客户需要在合同中填写信息、签名、打印、扫描并通过电子邮件发送回,以便我们能够处理合同,直到实体合同通过快递送达 问题 在合同中,还发送了一份说明,说明所有信息必须以电子方式填写,然后打印。然而,大多数客户只是简单地打印合同,然后在扫描之前手工填写,这使得检索合同中包含的信息有时相当困难 解决方案 我们考虑过的唯一一种方法是以PDF格式发送合同,其中包含一个可填写的表单和一个脚本,如果表单

该公司与客户签订了合同。合同的一部分要求客户机提供一些访问自己服务器的详细信息

合同以.doc格式发送给客户,客户需要在合同中填写信息、签名、打印、扫描并通过电子邮件发送回,以便我们能够处理合同,直到实体合同通过快递送达

问题 在合同中,还发送了一份说明,说明所有信息必须以电子方式填写,然后打印。然而,大多数客户只是简单地打印合同,然后在扫描之前手工填写,这使得检索合同中包含的信息有时相当困难

解决方案 我们考虑过的唯一一种方法是以PDF格式发送合同,其中包含一个可填写的表单和一个脚本,如果表单未填写,将阻止用户打印文档(或者如果无法阻止打印,则至少用一些消息来干扰打印过程)

问题:
  • 有可能吗?如果是,我在哪里可以找到这方面的示例/资源
  • 还有其他(更好的)选择吗

  • (我找到了一些关于脚本的资源:来自Adobe。还有其他建议吗?

    正如您所提到的,您可以使用Adobe JavaScript来实现这一点

    来自Adobe的示例代码可能会有所帮助

    在该页面中,必须包含在PDF文件中的代码如下所示:

    f = getField(event.target.name)
    if (f.value.length == 0)
    {    
       f.setFocus()    
       //Optional Message - Comment out the next line to remove
       app.alert("This field is required. Please enter a value.")
    }
    
    您需要使用您选择的PDF处理库将此代码添加到PDF文件中,在表单中添加一个打印按钮,并在打印前进行验证。代码应该包装在Javascript操作对象中

    您还可以将此代码添加为文档的操作事件,特别是在

    “将打印”事件设置在PDF文件的目录(根)对象中名为WP的条目中。根据PDF规范:

    表8.47文档目录的附加操作字典中的条目
    键:WP
    类型:字典

    说明:(可选;PDF 1.4)打印文档前要执行的JavaScript操作。(WP的名称代表“will print”。

    正如您所提到的,您可以使用Adobe JavaScript来实现这一点

    来自Adobe的示例代码可能会有所帮助

    在该页面中,必须包含在PDF文件中的代码如下所示:

    f = getField(event.target.name)
    if (f.value.length == 0)
    {    
       f.setFocus()    
       //Optional Message - Comment out the next line to remove
       app.alert("This field is required. Please enter a value.")
    }
    
    您需要使用您选择的PDF处理库将此代码添加到PDF文件中,在表单中添加一个打印按钮,并在打印前进行验证。代码应该包装在Javascript操作对象中

    您还可以将此代码添加为文档的操作事件,特别是在

    “将打印”事件设置在PDF文件的目录(根)对象中名为WP的条目中。根据PDF规范:

    表8.47文档目录的附加操作字典中的条目
    键:WP
    类型:字典

    说明:(可选;PDF 1.4)打印文档前要执行的JavaScript操作。(WP这个名字代表“will print”。

    我能想到的最好的解决方案是在Acrobat中使用Javascript,您已经提到了。但是,如果用户在Acrobat Reader中禁用javascript,您将回到第1步…我不是在寻找一个100%愚蠢的解决方案。。。我可以忍受偶尔手写几份合同。我能想到的最好的解决方案是使用Acrobat的Javascript,你已经提到过了。但是,如果用户在Acrobat Reader中禁用javascript,您将回到第1步…我不是在寻找一个100%愚蠢的解决方案。。。我可以忍受几份手写的合同。太好了!我今天没有时间做这件事,但它看起来确实是正确的方向。非常感谢!伟大的我今天没有时间做这件事,但它看起来确实是正确的方向。非常感谢!