2013-06-04 1 views
0

다음으로 문제는 페이지의 positon을 참조하여 InDesign CS6에서 특정 textFrame을 식별하는 것입니다. 나는 그 자리를 얻으려면 textFrame.geometricBounds을 사용할 수 있다는 것을 알고 있지만, 그래야한다고하더라도 if 문을 작동시키는 데 문제가 있습니다.해당 geometricBounds를 기반으로 InDesign에서 textFrame 찾기

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 문은 배열의 3 개 세트 반환의 세 번째는 확실히 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]; 
    } 
} 

이 마침내 작품을 다른 사람이이 제한을 인식하지 않은 경우 지금 당신은 당신이 그것을 극복하는 방법을 알고있다.