我有一个PDF文件,里面有一些脚本。允许脚本更改打印文档的打印机(因为我们有用于条形码的专用打印机和用于常规文档的其他打印机)。问题是,我不知道如何将打印机重置为计算机的默认打印机。
打印代码如下:
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()
的第一次调用中读取),因为实际上我不知道t知道读取值是指默认打印机还是已被其他打开的文档更改过。
不同版本的Adobe Reader(9,10,11)和福昕阅读器的行为是一致的。
请帮忙,如何以编程方式将打印机重置为默认值?
答案 0 :(得分:1)
实际上可以使用global
对象解决问题,该对象在adobe reader的一个实例中的多个打开的文档中共享。
首次加载文档,我检查global
对象是否包含(我自己的)属性defaultPrinter
,除非我调用getPrintParams()
,请阅读printerName
字段并将其分配给global.defaultPrinter
。然后我可以只读取该字段以获取默认的打印机名称。代码如下:
if (global.defaultPrinter === undefined) {
global.defaultPrinter = getPrintParams().printerName;
}
答案 1 :(得分:0)
设置pp.printerName = '##NameOfAPrinterThatDoesntExists##'
将重置默认打印机。放轻松。