Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Extendscript InDesign CS6:使用打印预设打印_Javascript_Printing_Adobe Indesign_Extendscript_Preset - Fatal编程技术网

Javascript Extendscript InDesign CS6:使用打印预设打印

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

对于Javascript/Extendscript向导来说,这个应该足够简单。我希望使用打印预设打印文档,同时指定页面范围(在选择预设后,还可以指定其他选项)。参考InDesign CS6 JavaScript脚本指南,它对如何实现这一点进行了精彩、详细的解释:

使用打印机预设进行打印

要使用打印机预设打印文档,请在“打印”命令中包含打印机预设

哇。因此,描述和帮助。有人能帮我更好地理解这个吗


编辑(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