Adobe indesign 从书本中打开文件时InDesign正在崩溃
编辑的较短版本: 我试图在InDesign中关闭一本打开的书,然后运行一些功能。看起来下一步在书完全合上之前就开始了Adobe indesign 从书本中打开文件时InDesign正在崩溃,adobe-indesign,extendscript,Adobe Indesign,Extendscript,编辑的较短版本: 我试图在InDesign中关闭一本打开的书,然后运行一些功能。看起来下一步在书完全合上之前就开始了 myBook.close(); alert("Book closed"); 我将在打开的书本仍在背景上的情况下显示警报。如果我尝试对书中的文件执行任何操作,它将在InDesign中崩溃。更多细节请参见下面的原始帖子 =============================== 抱歉发了这么长的帖子 我正在设计一本书。MAC OSX 10.9.5 Indesign CS5.5
myBook.close();
alert("Book closed");
我将在打开的书本仍在背景上的情况下显示警报。如果我尝试对书中的文件执行任何操作,它将在InDesign中崩溃。更多细节请参见下面的原始帖子
===============================
抱歉发了这么长的帖子
我正在设计一本书。MAC OSX 10.9.5 Indesign CS5.5
首先,我创建并填充大约30个章节,在开头添加TOC章节,在结尾添加另一个章节,创建一本书,将所有章节添加到书中,关闭并保存该书。之后,我试图打开最后一章,插入目录。文件打开后Indesign崩溃
没有file open语句,一切正常
代码示例:
创建书籍后:
// myBook is referenced through the app.open(myBookFile);
// with myBookFile is a string - path to the file
// also tried to re-reference book after open file by using app.books[0]
myBook.updateAllNumbers(); // tried to disable, did not help
//$.sleep(5000); //tried this, did not help
app.activeBook.close();
// also tried myBook.close(); no change
// tried myBook.close(SaveOptions.YES); no change
//$.sleep(5000); //tried this, did not help
//$.sleep(5000);
// add toc to the last chapter
alert("Before TOC Insert");
indexAddTOC();
alert("Build is complete");
当第一个警报出现时,我可以看到这本书仍然打开着。使用EST调试器的另一个步骤是在第一个警报之前关闭书本(并且不会在InDesign中崩溃)
我可以看到最后一条消息,在这之后InDesign崩溃了。重新打开时,它会打开书中的每一章
function indexAddTOC(){
// re-open index file
var myFolder = new Folder("~/Desktop/" + publicationName.replace(/ /g, "_").replace(/:/g, ""));
var myFileName = "000".substr( 1,3 - selectionNumber.toString().length) + selectionNumber + "_Index.indd";
var myFile = File(myFolder.fsName + "/" + myFileName);
app.open(myFile); // disabling this eradicates the error
}
错误消息:
错误报告转储包含以下内容:
Thread 16:
0 libsystem_kernel.dylib 0x98b4e046 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x947d4dcf _pthread_wqthread + 372
2 libsystem_pthread.dylib 0x947d8cce start_wqthread + 30
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x00000040 ebx: 0x00000040 ecx: 0x00000040 edx: 0x00000000
edi: 0xbfffac54 esi: 0x00000040 ebp: 0xbfffab88 esp: 0xbfffab70
ss: 0x00000023 efl: 0x00010282 eip: 0x947d6bd5 cs: 0x0000001b
ds: 0x00000023 es: 0x00000023 fs: 0x00000000 gs: 0x0000000f
cr2: 0x00000040
Logical CPU: 0
Error Code: 0x00000004
Trap Number: 14
它觉得问题在书中没有正确地结束。以前有没有人有过类似的问题,知道如何解决这个问题吗?也许是这样的
while(app.books.itemByName(myBookFile).isValid){}
代替你的睡眠?我现在不能测试,但这是一个想法。谢谢,克里斯蒂娜。我尝试过类似的while(app.books.length>0){}。这似乎让我陷入了一个永恒的循环,或者至少花了这么长时间我不得不被迫退出。我会尝试你的版本,以确保。对不起,不工作。脚本跳转到下一步(警报),我仍然可以看到书打开了。我尝试了一些修改,但仍然没有成功。在保存本书之前还尝试关闭所有文档,似乎没有任何区别。此外,使用这种方法,我得到了一个永恒的循环,就像我尝试while(app.books.length>0)时一样。这可能不是它,但您是否将userInteractionLevel设置为在任何时候都不交互?我在过去遇到过一些问题,我忽略了撤销它,我被一些我看不见的通知卡住了。在黑暗中拍摄。不-这是另一个好建议,因为我正在创建和保存/关闭文件。不幸的是,我也试过了(对不起)。我试着把它穿上又脱下,然后完全去掉。没有任何区别。谢谢你的帮助。有什么“图书关闭”活动你可以听吗?我想没有。至少我在参考资料中找不到任何东西。那会很容易。。。我想您可以尝试使用Windows(如果ExtendScript能够以某种方式访问),在文件句柄实际释放时获得通知……感谢您的帮助,Tobias。我的客户端在Mac上,它使用FSEvents,Indesign使用修改的JavaScript ECMA3。我认为与系统事件的集成没有那么好,但我可能应该对此进行检查。如果JavaScript不支持系统调用,那么您可以在某些AppleScript上使用
doScript
。但这只是我听到的,我是一个纯Linux/Windows的家伙;)