首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Adobe Reader JavaScript API中将打印机重置为默认打印机

在Adobe Reader JavaScript API中将打印机重置为默认打印机
EN

Stack Overflow用户
提问于 2013-02-07 21:37:28
回答 2查看 1.9K关注 0票数 3

我有一个PDF文件,里面有一些脚本。允许脚本更改要将文档打印到的打印机(因为我们有用于条形码的专用打印机和用于常规文档的其他打印机)。问题是,我不知道如何将打印机重置为计算机的默认打印机。

打印代码如下:

代码语言:javascript
运行
复制
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的行为是一致的。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-18 17:15:16

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

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

代码语言:javascript
运行
复制
if (global.defaultPrinter === undefined) {
    global.defaultPrinter = getPrintParams().printerName;
}
票数 1
EN

Stack Overflow用户

发布于 2017-10-26 15:58:03

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14752457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档