首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修改从textFrame创建的InDesign文档?

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

Stack Overflow用户
提问于 2017-03-15 00:09:49
回答 1查看 831关注 0票数 0

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

我没有访问InCopy的权限,我已经尝试过通过将INDD文件导出到一个IDML文件,然后将它带回来来覆盖InCopy帧,但是我无法绕过InCopy。当我研究这个站点时,我能找到的最接近的问题是如何将InDesign/InCopy脚本编写为“签入”和“签出”textFrames?,但是当我试图在选择上实现checkOut()时,我得到了一个错误,所以我研究并遇到了以下问题:

但我仍然无法在选定的文本框上插入。

裁剪代码

代码语言:javascript
复制
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;
        } 
    }
}

如何针对textframe编写脚本以添加从InCopy创建的文本,从而使我能够在文档中运行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 14:04:33

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

代码语言:javascript
复制
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().checkOut();

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42798874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档