Adobe 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

编辑的较短版本:

我试图在InDesign中关闭一本打开的书,然后运行一些功能。看起来下一步在书完全合上之前就开始了

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的家伙;)