这是一个非常奇怪的。我们公司有一个InDesign脚本,接近最后,调用Acrobat(通过Applescript)打开PDF文件,替换其中的页面,然后保存文件并关闭它。我们已经使用这个脚本超过一年半,现在我们拥有的9台计算机中的8台都没有问题。然而,最后一个在尝试打开并保存文件时给我一个奇怪的信息。
要明确的是,所有9台计算机都是Mac,都运行OS X 10.9.5 Mavericks。该脚本位于中央服务器上,因此他们都使用相同的文件:
var unlockCover2014 = app.trustedFunction(function (fName, fPrefix)
{
app.beginPriv();
var folderPrefix = fName.match(/^.*?(?=JOBS)/);
console.println("fName is " + fName);
console.println("folderPrefix is " + folderPrefix);
var myDoc = app.openDoc(folderPrefix + "Product Templates/ProofCoverNew/proof_cover_2014.pdf");
myDoc.replacePages(0, fName, 0, 0);
myDoc.saveAs(fName);
myDoc.closeDoc(true);
app.endPriv();
});
此文件存储在正确的文件夹中,作为文件夹级脚本。其中8台计算机可以毫无困难地完成这项任务。然而,第9个将它放入Acrobat的Javascript控制台:
fName is /ArtDept/ArtDept/JOBS/425000-425999/425000 Folder/425000_cover.pdf
folderPrefix is /ArtDept/ArtDept/
RaiseError: This file is already open.
Doc.saveAs:9:
===> This file is already open.
我不明白为什么这台计算机单独认为PDF文件已经打开。由此产生的问题是,当主要的InDesign脚本运行完毕时,Acrobat中仍然会打开两个文档,而它应该保存的文档 not 将被保存。< / p>
关于这里发生了什么的任何想法?
答案 0 :(得分:1)
如果这是我们正在谈论的内容,那么在InDesign尚未完全结束编写PDF文件时,是否可能运行Acrobat脚本?或者可能存在一些网络延迟,导致文件暂时无法访问。
我建议使用延迟来验证该理论。
delay 3
&#13;
另一方面,为什么需要替换文件。我的意思是只能在InDesign Scripting Scope中考虑这个问题吗?好奇。
答案 1 :(得分:0)
我终于发现了问题所在。我觉得它几乎是显而易见的有点傻,但也许在我的情况下可能对其他人有帮助。
我在调用Acrobat的主要InDesign脚本中禁用了该行,在我处理其他一些问题之后,我又回到了这个问题。当我这样做并再次运行主脚本时,我发现Acrobat确实已经在执行主脚本的过程中打开了封面PDF的副本!起初我很震惊,但是当我很快意识到原因时,我做了一个headdesk:
默认情况下,此计算机上的InDesign设置为在导出后自动打开PDF。
所以,我刚刚在代码中添加了一条短线,用于设置PDF导出首选项以关闭该功能:
with (app.pdfExportPreferences)
{
pageRange = proofRange;
if (multiColor) pageRange = colorTable.toString();
useSecurity = true;
disallowChanging = true;
disallowCopying = false;
disallowDocumentAssembly = true;
disallowExtractionForAccessibility = false;
disallowFormFillIn = true;
disallowHiResPrinting = false;
disallowNotes = true;
disallowPlaintextMetadata = true;
disallowPrinting = false;
changeSecurityPassword = "(NOPE)";
viewPDF = false;
}
最后是viewPDF
行。 (对不起,我不认为我可以通过降价突出显示它。)我确实感到愚蠢,我忽略了这个半明显的原因,但我希望这可能会帮助遇到类似问题的其他人。无论如何,谢谢你试图提供帮助,@ Loic。