Javascript Extendscript InDesign CS6:使用打印预设打印
对于Javascript/Extendscript向导来说,这个应该足够简单。我希望使用打印预设打印文档,同时指定页面范围(在选择预设后,还可以指定其他选项)。参考InDesign CS6 JavaScript脚本指南,它对如何实现这一点进行了精彩、详细的解释: 使用打印机预设进行打印 要使用打印机预设打印文档,请在“打印”命令中包含打印机预设 哇。因此,描述和帮助。有人能帮我更好地理解这个吗Javascript Extendscript InDesign CS6:使用打印预设打印,javascript,printing,adobe-indesign,extendscript,preset,Javascript,Printing,Adobe Indesign,Extendscript,Preset,对于Javascript/Extendscript向导来说,这个应该足够简单。我希望使用打印预设打印文档,同时指定页面范围(在选择预设后,还可以指定其他选项)。参考InDesign CS6 JavaScript脚本指南,它对如何实现这一点进行了精彩、详细的解释: 使用打印机预设进行打印 要使用打印机预设打印文档,请在“打印”命令中包含打印机预设 哇。因此,描述和帮助。有人能帮我更好地理解这个吗 编辑(2019年1月21日) 有人问我如何才能告诉脚本我想打印哪些页面。结果表明,这并没有存储在Pr
编辑(2019年1月21日) 有人问我如何才能告诉脚本我想打印哪些页面。结果表明,这并没有存储在
PrinterPreset
中
有一个名为printPreferences
的属性,允许访问对象。此对象允许开发人员通过指定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。所选项目似乎仅用于导出项目,而不用于打印(因为PageRange
enum同时用于导出和打印项目)
操作)。然而,我还没有测试过这个
在调用document.print()
之前,可以设置许多其他属性,因此这是值得的。app.print()
方法可以将PrinterPreset
对象作为其参数之一。这里是一个参考的方法,以获取更多信息
以下是一个示例(未经测试):
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
的对象。因此,在上面的示例中,我通过调用文件
对象的构造函数来创建该对象的“实例”:var File=File(doc.fullName)代码>。然后我得到一个已经存在的PrinterPreset
对象:var preset=app.printerPresets[0]代码>。最后,我将每个对象传递给函数,为中间变量插入null
(因为它是可选的,所以我决定忽略它):app.print(文件,null,预设)
那么,您不会使用app.documents.item(0.print()
代替app.print()
?这似乎可以让我不必声明前两个变量,只需打印当前打开的文档。这两种方式可能都没有什么区别。什么对你最合适,太好了。现在我只需要一个.print()
可以接受的所有可能参数的引用。有什么好线索吗?如果你要让我去Jongware的网站,我已经知道了,但是找不到关于这些论点的好信息。当然,除非我只是不知道如何阅读DOM,这是非常正确的。我添加了一点参考说明,希望这有点帮助。它实际上不允许打印对话框中的所有可能选项。你提到的“非设计参考”在哪里?如果你不介意的话,我想自己研究一下。你最终是如何告诉它要打印的页面范围的?我在下面的答案中看不到这一点。它在你的打印机里吗?你能在这里(举个例子)说明这是如何做到的吗?@ChristiangeSelmann我希望这能有所帮助。☺️
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