我的客户拥有由Acrobat Pro创建的PDF表格。每个表格上都有一个“打印”按钮。 “打印”按钮后面是这个JavaScript,仍然是推荐的打印方法according to Adobe:
var pp = this.getPrintParams();
pp.printerName = "\\\\server2\\EN100Tiffs";
pp.interactive = pp.constants.interactionLevel.automatic;
this.print(pp);
app.alert("Document sent to printer", 3);
app.alert("Please close window after each use", 3);
上面指定的打印机实际上是一个实用程序,可以将发送给它的任何内容转换为TIFF(Alto Imaging的UltraTIFF驱动程序)。它所在的服务器是Windows 2008.另一个进程不断扫描TIFF文件并将它们发送到客户的文档成像系统。
这直到Adobe Reader 10.此时,该实用程序停止生成TIFF。客户通过使用Adobe Reader 9解决了这个问题,但现在他们被迫升级到Reader 11.它在Reader 11下也无法正常工作。
请注意,打印机不在客户端计算机上设置。客户端计算机都是Windows 7。
另请注意,用户可以直接访问PDF。它不在浏览器窗口内。
如果我在客户端计算机上将TIFF驱动程序设置为打印机(通过“开始”/“设备”和“打印机/添加打印机”),则脚本可在Adobe Reader 10和11下运行。如果打印机不设置,该脚本适用于Reader 9及更早版本,但它不适用于10或11.客户不会在客户端上设置打印机,因为他们害怕用户可能意外打印到它,并且他们打印的所有内容最终都会出现在文档成像系统中。
为了弄清楚出了什么问题,我在错误捕获中添加了错误捕获:
var pp = this.getPrintParams();
pp.printerName = "\\\\server2\\EN100Tiffs";
pp.interactive = pp.constants.interactionLevel.automatic;
try {
this.print(pp);
app.alert("Document sent to printer", 3);
} catch (err) {
app.alert("Error printing: " + err);
}
app.alert("Please close window after each use", 3);
当我尝试打印文档时,没有抛出任何错误。我收到了“发送到打印机的文档”消息而不是错误消息,但文档仍未发送到打印机 - 我的意思是没有创建TIFF文件。
所以我的问题是:
从Reader 9到Reader 10,有没有人在使用Javascript打印时遇到过类似的怪癖?
代码段中是否有任何内容导致错误?
感谢大家一起来看看,特别是如果你做到这一点:)