2013-06-04 26 views
0

我的下一個問題是通過引用頁面上的位置來識別InDesign CS6中的特定文本框。我知道我可以使用textFrame.geometricBounds來獲得它的位置,但我無法使if聲明正常工作,即使它應該。在InDesign中根據其幾何邊界查找文本框

var textFramesArray = document.layers.item("Product Name").textFrames.everyItem().getElements(); 

for (var i = 0; i < textFramesArray.length; i++) { 
    var corners = textFramesArray[i].geometricBounds; 
    $.writeln(textFramesArray[i].geometricBounds); 
    if (4.0 < corners[0] < 5.0 && -2.0 < corners[1] < -1.0) { 
     $.writeln("Found textFrame " + textFramesArray[i]); 
     $.writeln("Its contents are " + textFramesArray[i].contents); 
     var productFrame = textFramesArray[i]; 
    } 
} 

第一$.writelin語句返回三套陣列,其中第三肯定在if語句中指定的範圍內。我有一個偷偷摸摸的懷疑,它與數字的格式(整數與真實與雙重等)有關,但我不知道具體情況。請幫忙。

回答

1

回答我自己的問題再次探索。我發現if聲明不能理解雙向測試,如0 < x < 1。因此,我不得不將其拆分爲四個測試,例如:

var textFramesArray = document.layers.item("Product Name").textFrames.everyItem().getElements(); 
var corners;  
for (var i = 0; i < textFramesArray.length; i++) { 
    corners = textFramesArray[i].geometricBounds; 
    if (7 < corners[0] && corners[0] < 8 && 0 < corners[1] && corners[1] < 1) { 
     var productFrame = textFramesArray[i]; 
    } 
} 

這最後的作品,所以如果其他人不知道這個限制的,現在你知道你的周圍是怎麼得到的。