如何修改从InCopy创建的InDesign文档textFrame?

时间:2017-03-15 00:09:49

标签: javascript adobe-indesign

我有一个InDesign文件,我试图编写脚本,但我遇到了问题。我相信文档内容的一部分是从InCopy创建的,因为当我尝试通过页面编写脚本后修改该文本框架时,我得到了:

enter image description here

我无法访问InCopy,并且我已尝试通过将INDD文件导出到IDML文件来覆盖InCopy帧,然后将其重新引入,但我无法绕过InCopy。当我研究网站时,我能找到的最接近的问题是How to script InDesign/InCopy to “Check In” and “Check Out” textFrames?,但当我尝试在选择中实施checkOut()时,我收到错误,因此我进行了研究并遇到了问题:

但我仍然无法在选择文本框架上插入。

修剪代码

function run() {
    throw new Error( "Script has run into an error" ); 
}  
run.error = null;  

try {  
    app.doScript( somePages ); 
    if ( run.error ) { 
        throw run.error; 
    }
}  catch(e) {  
    alert( e );  
} 

function somePages() {
    var allPages = app.documents[0].pages.everyItem().getElements(),
        items = app.activeDocument.allPageItems,
        pageCount = allPages.length;

    for ( var x = allPages.length-1; x >= 0; x-- ) {
        if ( allPages[x].textFrames.length != 0  && items[x].locked == false ) {
            app.activeDocument.pageItems.everyItem().locked = false;
            app.select(allPages[x].textFrames[0].insertionPoints[0]);
            app.selection[0].contents= "foobar" + allPages[x].name;
        } 
    }
}

如何针对文本框架编写脚本以添加从InCopy创建的文本,以允许我浏览文档?

1 个答案:

答案 0 :(得分:3)

那是因为在文本框架的情况下,需要检查的是故事。



function run() {
    throw new Error( "Script has run into an error" ); 
}  
run.error = null;  

try {  
    app.doScript( somePages ); 
    if ( run.error ) { 
        throw run.error; 
    }
}  catch(e) {  
    alert( e );  
} 

function somePages() {
    var allPages = app.documents[0].pages.everyItem().getElements(),
        items = app.activeDocument.allPageItems,
        pageCount = allPages.length;

    for ( var x = allPages.length-1; x >= 0; x-- ) {
        if ( allPages[x].textFrames.length != 0  && items[x].locked == false ) {
			app.activeDocument.stories.everyItem().checkOut();
            app.activeDocument.pageItems.everyItem().locked = false;
            app.select(allPages[x].textFrames[0].insertionPoints[0]);
            app.selection[0].contents= "foobar" + allPages[x].name;
        } 
    }
}




<强> app.activeDocument.stories.everyItem()退房();