对于Javascript/Extendscript向导来说,这个应该足够简单了。我希望使用打印预置打印文档,同时指定页面范围(以及其他选项,在选择了预设后)。参考“InDesign CS6 JavaScript脚本指南”,它对如何做到这一点有了很好的详细说明:
打印机预置打印 若要使用打印机预置打印文档,请在“打印”命令中包括打印机预置。
哇。很有描述性也很有帮助。有人能帮我更好地理解这件事吗?
编辑(01/21/2019)
有人问我如何能够告诉脚本我想打印哪一页。事实证明,它不是存储在PrinterPreset中的。
Document有一个名为printPreferences的属性,它允许访问PrintPreference对象。该对象允许开发人员通过指定一个pageRange枚举或一个具有页面范围的字符串( "1“为第一页)来设置PageRange。
因此,为了说明:
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()属性,因此值得使用去查他们。
发布于 2013-05-21 13:20:01
app.print()方法可以将PrinterPreset对象作为其参数之一。下面是一个链接,它引用了该方法以获得更多信息。
下面是一个示例(未经测试):
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()方法:
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方法的名称,后面是它的命名参数:from、printDialog和using,以及每个参数类型应该是什么。
图中还列出了这些参数,以供进一步解释。例如,from参数需要一个类型为File的对象。因此,在上面的示例中,我通过调用File对象的构造函数:var file = File(doc.fullName);来创建它的“实例”。然后我得到一个已经存在的PrinterPreset对象:var preset = app.printerPresets[0];。最后,我将每个对象传递给为中间变量插入null的函数(因为它是可选的,所以我决定忽略它):app.print(file, null, preset);。
https://stackoverflow.com/questions/16612738
复制相似问题