我正在使用这个脚本(下面)批次导出pdf:s从几个indesign文件为我每周做的一项任务。文件名总是一样的,我使用8-10个不同的indd文件来创建12-15个不同的pdf:s。
脚本的设置如下:
//Sets variables for print and web presets
var myPDFExportPreset = app.pdfExportPresets.item("my-present-for-print-pdf");
var myPDFExportPreset2 = app.pdfExportPresets.item("my-preset-for-web-pdf");
//sample of one pdf exported first with print, then web pdf preset as two different files
var firstFileIntoPdfs = function(){
var openDocument= app.open(File("MYFILEPATH/firstfile.indd"));
openDocument.exportFile(
ExportFormat.pdfType,
File("MYFILEPATH/print-pdfs/firstfile-print.pdf"),
false,
myPDFExportPreset
);
openDocument.exportFile(
ExportFormat.pdfType,
File("MYFILEPATH/web-pdfs/firstfile-web.pdf"),
false,
myPDFExportPreset2
);
};我将像上面这样的所有导出定义为命名函数,有些只使用一个预置,有些使用上面的两个。我在文件末尾调用所有这些函数
firstFileIntoPdfs();
secondFileIntoPdfs();
thirdFileIntoPdfs();
fourthFileIntoPdfs();等等..。¨
然而,这个脚本非常慢,每个1或2个pdfs中有10个文件,就像上面的函数一样,可能需要10分钟。我不认为这是CPU问题,我注意到的是,脚本似乎在等待创建"firstFileIntoPdfs()“中的文件,这个过程需要几分钟才能执行下一个函数。然后再等..。
手动选择“文件->导出”,您可以在前面的文件仍在处理pdf文件时设置要导出的新文件,这在我看来比这个脚本的工作速度要快。当然,手动单击很容易出错,而且很乏味。
是否有更好的方法来编写这个批处理导出脚本,这将使所有函数在以前函数的pdfs仍在系统中处理时执行?,我希望将它们保留为单独的函数,以便在只需要某些特定的pdf:s时,能够注释掉一些函数(除非导出所有函数的过程几乎与导出1pdf一样快)。
我希望我的问题有意义!
发布于 2017-08-22 11:33:12
有一个异步方法可用,将exportFile替换为asynchrousExportFile:
var openDocument= app.open(File("MYFILEPATH/firstfile.indd"));
openDocument.asynchronousExportFile(
ExportFormat.pdfType,
File("MYFILEPATH/print-pdfs/firstfile-print.pdf"),
false,
myPDFExportPreset
);使用后台任务的
https://stackoverflow.com/questions/45809979
复制相似问题