我正在使用这个脚本(下面)从几个indesign文件中批量导出pdf:s,这是我每周都要完成的任务。文件名总是一样的,我使用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();
依此类推......¨
但是脚本很慢,10个文件分别为1或2个pdf,就像上面的函数一样,可能需要10分钟。我不认为这是一个CPU问题,我注意到,似乎脚本正在等待创建“firstFileIntoPdfs()”中的文件,这个过程需要几分钟,然后才能继续执行下一个函数。然后再等一下......
选择文件 - >手动导出您可以设置要导出的新文件,而之前的文件仍在处理pdf文件,这对我来说似乎比这个脚本的工作方式更快。但是,当然,手动点击是容易出错和繁琐的。
有没有更好的方法来编写这个批处理导出脚本,而不是我上面的方法,这会使所有函数执行,而以前函数的pdf仍在系统中处理?我会喜欢将它们作为单独的函数保存,以便在只需要某些特定的pdf:s时能够注释掉一些。 (除非导出全部的过程几乎与仅导出1个pdf一样快)。
我希望我的问题有道理!
答案 0 :(得分:2)
有一个asynch方法可用,将exportFile替换为asynchrousExportFile:
var openDocument= app.open(File("MYFILEPATH/firstfile.indd"));
openDocument.asynchronousExportFile(
ExportFormat.pdfType,
File("MYFILEPATH/print-pdfs/firstfile-print.pdf"),
false,
myPDFExportPreset
);
使用后台任务