2014-04-30 10 views
1

이것은 매우 단순해야하지만 당연히 저에게 불어납니다.inDesign 자바 스크립트를 사용하여 텍스트 필드를 인쇄하지 않으려 고 시도했습니다.

양식에서 Adobe InDesign CS3로 작업하고 있으며 특정 조건이 충족되면 스크립트 라벨 패널에 "RUSH"(라벨 패널에 따옴표 없음)로 레이블 된 텍스트 프레임이 있습니다. 나는 비 인쇄물로 만들고 싶다.

document.textFrames.item("RUSH").nonprinting = false; 

내가 그 스크립트를 실행할 때마다 아직 내가 오류 45

내가 인디 스크립팅에 새로운 해요 "유효하지 않은 개체를"얻을 하루 종일 검색했습니다 : 지금까지은 다음과 같습니다 예를 들어 답이나 지금까지는 아무것도 없습니다. 이견있는 사람? 나는 슈퍼 무언가를하거나 놓쳤는가?

업데이트 : 아래의 답변을 요약, 내가 없어진 것을 .itemByName했다

코드 이제 기능을 다음 줄에 의도 한대로 :

document.textFrames.itemByName("RUSH").nonprinting = false; 

스크립트 레이블 패널에 태그 프레임으로 .

도움을 주신 모든 분들께 감사드립니다.

+0

가 페이지 '에서'직접 배치이 표시 textframe인가, 또는 다른 내부의 인라인 프레임입니까? – usr2564301

+0

텍스트 프레임이 페이지에 직접 있으며, 코드를 document.textFrames ("RUSH")로 변경했습니다 .printing = false; 대괄호 안에 숫자를 사용하여 성공했습니다. 그 번호가 할당 된 방법이나 그 정보를 보여줄 수있는 곳을 찾을 수있을만큼 행복 할 것입니다. 그 숫자가 주어진 방법과 거의 임의적 인 것 같아요, 그리고 내가 문서를 바꿀 때 바뀝니다! – WinnipegFats

+0

게시물에 대괄호 나 숫자가 없습니다. 'textFrame.index' 또는'textFrame.id'의 값을 의미합니까? ('index'는 객체 목록에서 * n * 번째 항목의 숫자 인덱스이고,'id'는 각 개별 객체에 대한 문서 전체의 고유 식별자입니다.) 절대 언급하지 마십시오. 나는 당신의 구문 *이 작동해야한다고 확신한다. ** ** (정확히) "RUSH"라고 불리는 객체가있다. - 대소 문자를 구별한다. – usr2564301

답변

0

this thread on the Adobe forum에서 포스터는 다음과 같이 말합니다. "CS4 이하에서는 스크립트 레이블 패널을 사용하고 CS5 이상에서는 레이어 패널을 사용하십시오."

CS6에

, 내가 텍스트 프레임이 레이어에 패널을 "러쉬"를 이름으로 인쇄되지 않는,이 코드를 실행 할 수 있습니다 :

var rush = doc.textFrames.itemByName("RUSH"); 
rush.nonprinting = false; 
+0

CS3에서 [스크립트 레이블] 패널을 사용한다고 명시 적으로 밝히기 때문에 OP의 질문에 대답하지 않습니다. – usr2564301

+1

불량배에 나는 위의 코드에서 .itemByName ("RUSH")을 시도하기로 결정했는데 ... 그것을 모르는 것입니까? 성공! – WinnipegFats

+0

@WinnipegFats : 예기치 않은 문제입니다. CS3는 나에게 '오래된 뉴스'이며,이 동작에서 CS4와 일상 업무 CS4간에 차이가 없다고 생각했습니다. Evan의 답변을 (약간) 수정하여 내 downvote를 삭제할 수 있습니다. – usr2564301