2013-02-07 191 views
3

我有一个PDF文件,其中包含一些脚本。这些脚本允许更改要打印文档的打印机(因为我们有专用的条形码打印机和其他常规文档打印机)。问题是,我不知道如何将打印机重置为电脑的默认打印机。将打印机重置为Adobe Reader中的默认打印机JavaScript API

的印刷码是如下:

var pp = getPrintParams(); // get printing parameters 
pp.interactive = pp.constants.interactionLevel.automatic; // do not prompt user 
pp.printerName = 'barcode_printer'; // set printer name 
this.print(pp); // print 

按照JavaScript API Reference(314,583页),则返回getPrintParams()默认打印参数和pp.printerName集到''(空字符串)指默认打印机。我意识到没有一个是真的。其实getPrintParams()返回上次使用的参数(不是新的/默认的),并且pp.printerName = ''不会将打印机重置为默认值,而是使用上次选择的打印机。

而且,PrintParams对象似乎是在不同的打开的文档共享,因此我不能存储的默认打印机的名称在一些变量(从getPrintParams()首次调用读),因为其实我不知道,如果读取值是指到默认打印机或它已被其他打开的文档更改。

行为在不同版本的Adobe Reader(9,10,11)和Foxit Reader中保持一致。

请帮忙,如何以编程方式将打印机重置为默认值?

回答

1

实际上,问题可以通过使用global对象解决,该对象在adobe reader的一个实例中在多个打开的文档中共享。

第一次,文件被加载,我检查global对象是否包含(我自己)属性defaultPrinter,除非我打电话getPrintParams(),阅读printerName领域,并将其分配给global.defaultPrinter。然后,我只能阅读该字段以获取默认的打印机名称。代码如下:

if (global.defaultPrinter === undefined) { 
    global.defaultPrinter = getPrintParams().printerName; 
} 
0

设置pp.printerName = '##NameOfAPrinterThatDoesntExists##'将重置默认打印机。别紧张。

相关问题