2011-05-04 150 views
1

我是一位經驗豐富的JavaScript程序員,目前正在開發一個需要大量工作的項目,並且希望可以使用InDesign腳本實現流程自動化。腳本InDesign - 初學者

基本上,這是我想要做的。我有一個5(有時,但很少,4)數字字符串。然後我在文本框架下面有三個矩形,我想要應用一個樣本,具體取決於數字的最後一位數字。數字0-9被分配一個特定的顏色(和樣本),此刻我手動檢查每個矩形,並根據最後兩位數字選擇它,並將樣本應用於所有選定的樣本。

我確信使用InDesign用戶腳本必須可以自動化該過程,但我對此沒有很好的理解。這裏的的顏色是如何分配的特殊條形碼的例子:

0 =紅色 1 =藍色 2 =綠色 ....

因此,對於下面的代碼:12312,我想條的下方,以具有以下顏色:

藍色 紅色 藍色

(即頂部和底部行=倒數第二位;中間行=最後一位)。

任何人都可以向我表明如何編寫一個腳本,它可以遍歷文檔中的頁面,查找代碼,提取最後兩位數字,然後根據編號將矩形對象應用到一個樣本中。

我相信,我可以寫這樣的事情經常使用JavaScript和HTML,但雖如此,我感到很熟悉HTML DOM中......

任何幫助或指針將受到歡迎!

+0

顏色代碼存儲在哪裏?它們是否在文本框中(在矩形上方 - 需要應用樣本)?如果是這樣,文本框是否與需要應用樣本的矩形組合在一起,或者如何將它們鏈接在一起? – lhan 2011-05-04 17:27:58

+0

感謝您的評論。所有相關的項目(即文本框架和三個矩形)被分組在一起。 – BenM 2011-05-04 17:47:11

回答

3

這是一個我剛輸入的腳本示例,應該讓你開始。你可能需要調整它,但我認爲它涵蓋了你的要求。

test(); 
function test(){ 

    //Open your document: 
    var myDoc = app.open('c:/users/user/desktop/test.indd'); 

    //Get all groups for this document: 
    var myGroups = myDoc.groups; 

    //Get all swatches for this document: 
    var mySwatches = myDoc.swatches; 

    //Loop through all of your groups: 
    for (var i = 0; i < myGroups.length; i++){ 

     //for each group we need to get the code from the text frame, 
     //so get the text frame first: 
     var myTextFrame = myGroups[i].textFrames[0]; 

     //Now get the color code from the text frame: 
     var myColorCode = myTextFrame.contents; 

     //get the rectangle from this group: 
     var myRect = myGroups[i].rectangles[0]; 

     //here you would want to parse out whichever digits you need from myColorCode 

     //use the code to determine which swatch to use, loop through the swatches: 
     for(var s = 0; s < mySwatches.length; s++){ 

       //find it: 
       var mySwatch = mySwatches[s]; 

       //apply this swatch to your rectangle, and leave the loop: 
       myRect.fillColor = mySwatch; 
       break; 
     } 

    } 


} 

我希望這有助於!這裏有一些scripting references straight from Adobe應該有所幫助。如果您對上述示例有任何疑問,請告知我們。

+1

這絕對是太棒了。衷心感謝您的幫助 - 您爲我節省了大量工作! +1 – BenM 2011-05-04 18:48:01

+0

沒問題,祝你好運! – lhan 2011-05-04 18:50:17