2012-05-08 4 views
2

Я пытаюсь создать скрипт InDesign, который функционирует точно так же, как SplitStory.jsx, только для того, чтобы он не требовал сначала выбора текстового фрейма с потоком, но вместо этого прорисовывал все, которые были связаны потоком/связаны внутри всего документа.Прокрутка всех сквозных текстовых фреймов в JavaScript InDesign скрипт?

Вот что у меня есть до сих пор, но, похоже, он ничего не делает. Я довольно новичок в написании сценариев.

main(); 
function main(){ 
    //Make certain that user interaction (display of dialogs, etc.) is turned on. 
    app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll; 
    if(app.documents.length != 0){ 
     var myDoc = app.activeDocument; 
     var myStories = 0; 
     for (var i = 0; myDoc.stories.length > i; i++) 
      myStories = myDoc.stories[i]; 
      mySplitStory(myStories); 
      myRemoveFrames(myStories); 
    } 
    else{ 
     alert("Please open a document and try again."); 
    } 
} 
function mySplitStory(myStory){ 
    var myTextFrame; 
    //Duplicate each text frame in the story. 
    for(var myCounter = myStory.textContainers.length-1; myCounter >= 0; myCounter --){ 
     myTextFrame = myStory.textContainers[myCounter]; 
     myTextFrame.duplicate(); 
    } 
} 
function myRemoveFrames(myStory){ 
    //Remove each text frame in the story. Iterate backwards to avoid invalid references. 
    for(var myCounter = myStory.textContainers.length-1; myCounter >= 0; myCounter --){ 
     myStory.textContainers[myCounter].remove(); 
    } 
} 

Я чувствую, что мне нужно что-то добавить к mySplitStory(myStories); как mySplitStory(myStories.currentStory);, но я не могу найти ничего об этом конкретно в Интернете (или в скриптовом документации компании Adobe - но, возможно, я не ищу в нужных местах) ,

Любая помощь была бы принята с благодарностью!

ответ

1

Вот очень простой скрипт, который позволит вам перемещаться по всем текстовым рамкам внутри документа, а затем делать все, что вам нужно, с помощью текстовых фреймов. В принципе, если какой-либо данный textFrame имеет объект textFrame для nextTextFrame или previousTextFrame, вы знаете, что он имеет резьбу.

test(); 
function test(){ 

    var myDoc = app.open('c:/123.indd'); 

    //get all textframes: 
    var allTextFrames = myDoc.textFrames; 

    for(var i=0;i<allTextFrames.length;i++){ 
     var tf = allTextFrames[i]; 

     if(tf.nextTextFrame != null || tf.previousTextFrame != null){ 

      //text frame is threaded, do work: 
     } 
    } 
} 

Надеюсь, это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^