3

我有一个 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 参考(第 314、583 页),getPrintParams()返回默认打印参数并pp.printerName设置为''(空字符串)表示默认打印机。我意识到这一切都不是真的。实际上getPrintParams()返回最后使用的参数(不是新的/默认参数)并且pp.printerName = ''不会将打印机重置为默认参数,而是使用最后选择的打印机。

此外,该PrintParams对象似乎在不同打开的文档之间共享,因此我无法将默认打印机的名称(从第一次调用中读取getPrintParams())存储在某个变量中,因为实际上我不知道读取的值是指默认打印机还是它已被其他打开的文档更改。

该行为在不同版本的 Adob​​e Reader(9、10、11)和 Foxit Reader 中是一致的。

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

4

2 回答 2

1

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

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

if (global.defaultPrinter === undefined) {
    global.defaultPrinter = getPrintParams().printerName;
}
于 2013-02-18T09:15:15.670 回答
0

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

于 2017-10-26T07:58:03.047 回答