2014-09-28 8 views
4

이미지를 다시 링크 한 다음 JS 코드를 작성하여 포함 된 개체에 맞게 크기를 조정합니다. 코드의 단순화 된 버전 다음 if(image.locked) 블록 주위에 try/catch 블록으로InDesign Server - 이미지의 크기를 조정할 수 없습니다. 잠겨있어서 잠금을 해제 할 수 없습니다.

var image = (get image); 
try { 
    image.itemLink.relink(File(new_filename)); 
} 
catch(e) { 
    (log it); 
} 

var image = (find image again because after the relink it would otherwise cause error "Object no longer exists") 

(work out new width, height, v offset, h offset); 

try { 
    if(image.locked) { 
    lock_later = true; 
    image.locked = false; 
    } 
} 
catch(e) { } 

// Resize and reposition image 
image.geometricBounds = [(rectangle.geometricBounds[0] + h_offset) + "mm", (rectangle.geometricBounds[1] + w_offset) + "mm", (rectangle.geometricBounds[2] - h_offset) + "mm", (rectangle.geometricBounds[3] - w_offset) + "mm"]; 

// Lock the image again if it was locked before 
if(lock_later) { 
    image.locked = true; 
} 

는, 크기 조정 선은 (는 잠금을 해제하지 못하기 때문에) 오류 "이미지가 잠겨 있습니다"가 발생합니다. try/catch가 없지만 if(image.locked) 블록을 유지하면 "이 속성은 현재 상태에 적용 할 수 없습니다."라는 오류가 발생합니다. image.locked에 액세스하려고 할 때

내 상태가 어떤 이미지이고, 응용 프로그램이 크기 조정을 방지하기 위해 응용 프로그램을 분명히 사용하고 있는데도 "적용 가능"하지 않은 이유는 무엇입니까? 이미지를 크기를 조정하려면 어떻게해야합니까? 자동화 된 프로세스이며 프로덕션 환경에서 InDesign을 사용하여 수동으로 미리 편집 할 수는 없습니다. 어도비의 문서에 명시된 바와 같이

+0

개체의 어떤 유형의'image'은 다음과 같습니다

가장 쉬운 해결 방법은 그래픽 이미지에 대한 핸들 주어진 확인 및/또는 그 부모를 통해 상태를 변경하는 것입니다? 코드에서 보이지 않는 컨테이너에서 컨테이너 (잠겨 있거나 잠길 수 있음)와 실제 이미지가 바뀔 수 있다고 생각합니다. 일반적으로 하나는 컨테이너 안의 페이지 객체가 아니라 내부의 그래픽 객체를 잠급니다. – usr2564301

+1

'image' 변수는'Image' 객체입니다. IDS 문서에 따르면 'locked'는 이미지가 잠겨 있는지 여부를 지정하는'Image' 객체에 대한 읽기/쓰기 부울 속성입니다. 나는'image.parent'로 컨테이너 아이템에 접근 할 수 있다고 믿습니다. 아마 그 대신에 잠금 해제를 시도하고 어떤 일이 벌어 지는지 볼 수 있습니다. –

+0

나는 놀랐다. 저의 주요 작업 말은 CS4입니다. 그래서 방금 그 버전을 확인 했으므로 그래픽을 잠글 수 없습니다. 그러나 다음 버전부터 시작하여 * 할 수 있습니다. 나는 컨테이너를 잠 그거나 잠금을 해제해도 그 내용을 수정하는지 모르겠다. 그것도 설명서가 명확하지 않은 것 같습니다. – usr2564301

답변

4

, 이미지 컨테이너 - 일반 SplineItem는 '주변'상위 프레임 이미지가, - 잠금 및 읽기를 변경하여 잠금을 해제 할 수 있습니다/부울 속성 locked 물품.

InDesign CS4 및 이전 버전에서는 Graphic 클래스에는이 속성이 없지만 InDesign CS5 이후 버전에서는 locked 속성이 모든 파생 클래스에도 나타납니다. Adobe의 documentation에 따르면 읽기/쓰기 속성입니다. 그러나 이것은 입니다. CS6 실험을 통해 부모 프레임 안에있는 그래픽의 locked 속성 만 발견되었으므로 부모의 상태를 반영하며 실제로는 읽기 전용입니다.

CS4 및 이전 버전의 InDesign 사용자 인터페이스에서 프레임 안의 그래픽이 선택되면 "Lock"메뉴 항목이 비활성화됩니다. CS5 이후의 사용자 인터페이스에서는 잠긴 항목을 선택할 수 없으므로 메뉴 항목을 호출 할 수 없습니다.

image = app.activeDocument.allGraphics[0]; // a handle to the first graphic 
image.parent.locked = false; // unlock it