PDF - 如果用户未正确填写表单,则阻止/唠叨打印操作

时间:2012-10-23 11:24:42

标签: pdf printing

情况

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

合同以.doc格式发送给客户,客户需要用它的信息填写合同,签名,打印,扫描并通过电子邮件发回,以便我们可以使用它,直到物理合同通过快递到达。

问题

根据合同,还会发送一份说明,表明所有信息必须以电子方式填写,然后打印。但是,大多数客户只需打印合同,然后在扫描前手工填写,这有时会使检索到的信息非常困难。

解决方案

我们唯一想到的是以PDF格式发送合同,其中包含一个可填写的表单和一个脚本,如果表单没有填写(或者至少是唠叨),该脚本将阻止用户打印文档如果无法阻止打印,打印过程会显示一些消息)

问题

  1. 甚至可能吗?如果是这样,我在哪里可以找到这方面的示例/资源?
  2. 还有其他(更好)的选择吗?
  3. (我找到了一些有关脚本的资源:来自Adobe的PDFScripting.comJavaScript for Acrobat。还有其他任何建议吗?)

1 个答案:

答案 0 :(得分:1)

正如您所提到的,您可以使用Adobe-JavaScript。

Adob​​e的示例代码Enforcing Required Fields可能有所帮助。

在该页面中,您必须包含在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操作对象中。

您还可以将此代码添加为文档的操作事件,特别是在"will print" event中。

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

表8.47文档目录的附加操作字典中的条目
关键: WP 类型:字典
说明:(可选; PDF 1.4)在打印文档之前要执行的JavaScript操作。 (WP名称代表“将打印。”)