首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Extendscript CS6:使用打印预置打印

Extendscript CS6:使用打印预置打印
EN

Stack Overflow用户
提问于 2013-05-17 15:26:34
回答 1查看 2.5K关注 0票数 1

对于Javascript/Extendscript向导来说,这个应该足够简单了。我希望使用打印预置打印文档,同时指定页面范围(以及其他选项,在选择了预设后)。参考“InDesign CS6 JavaScript脚本指南”,它对如何做到这一点有了很好的详细说明:

打印机预置打印 若要使用打印机预置打印文档,请在“打印”命令中包括打印机预置。

哇。很有描述性也很有帮助。有人能帮我更好地理解这件事吗?

编辑(01/21/2019)

有人问我如何能够告诉脚本我想打印哪一页。事实证明,它不是存储在PrinterPreset中的。

Document有一个名为printPreferences的属性,它允许访问PrintPreference对象。该对象允许开发人员通过指定一个pageRange枚举或一个具有页面范围的字符串( "1“为第一页)来设置PageRange

因此,为了说明:

代码语言:javascript
复制
var document = app.activeDocument; // Presumes the document you want to print is already open.

document.printPreferences.pageRange = PageRange.ALL_PAGES; // Will print all pages in the document.
document.printPreferences.pageRange = "1-3,7,10,12-15" // Prints pages 1, 2, 3, 7, 10, 12, 13, 14, and 15.

注意:PageRange.SELECTED_ITEMS似乎只用于导出项,而不是打印(因为PageRange枚举用于这两个操作)。然而,我还没有对此进行测试。

在调用PrintPreference之前,还可以设置许多其他document.print()属性,因此值得使用去查他们

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-21 13:20:01

app.print()方法可以将PrinterPreset对象作为其参数之一。下面是一个链接,它引用了该方法以获得更多信息。

下面是一个示例(未经测试):

代码语言:javascript
复制
var doc = app.activeDocument;

var file = File(doc.fullName);      // Get the active document's file object

var preset = app.printerPresets[0]; // Use your printer preset object

app.print(file, null, preset);

InDesign引用列出了大致如下所示的app.print()方法:

代码语言:javascript
复制
void print (from: varies[, printDialog: bool][, using: varies])
Prints the specified file(s).

Parameter    Type                Description
from         Array of Files      One or more file paths. Can accept: File or Array of Files.
             File
printDialog  bool                Whether to invoke the print dialog (Optional)
using        PrinterPreset       Printer preset to use. Can accept: PrinterPresetTypes enumerator or PrinterPreset. (Optional)
             PrinterPresetTypes

列出的第一个信息是方法void的返回值,在本例中这意味着它不返回任何内容。

接下来列出的信息是print方法的名称,后面是它的命名参数:fromprintDialogusing,以及每个参数类型应该是什么。

图中还列出了这些参数,以供进一步解释。例如,from参数需要一个类型为File的对象。因此,在上面的示例中,我通过调用File对象的构造函数:var file = File(doc.fullName);来创建它的“实例”。然后我得到一个已经存在的PrinterPreset对象:var preset = app.printerPresets[0];。最后,我将每个对象传递给为中间变量插入null的函数(因为它是可选的,所以我决定忽略它):app.print(file, null, preset);

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

https://stackoverflow.com/questions/16612738

复制
相关文章

相似问题

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