我正在編寫一些JS代碼來重新鏈接圖像,然後調整大小以適合包含的對象。代碼的簡化版本: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;
}
與各地if(image.locked)
塊的try/catch塊,調整大小行引發錯誤「圖片被鎖定」(因爲它未能解鎖)。沒有try/catch但保持if(image.locked)
塊,它會拋出錯誤「該屬性不適用於當前狀態。」當試圖訪問image.locked
。
那麼,我的形象是什麼「狀態」,爲什麼它不是「適用的」,即使應用程序明確使用它來阻止我調整它的大小?如何調整圖像大小,因爲這是一個自動化過程,而且在生產中,我無法事先手動對InDesign進行編輯?
什麼類型的對象是'image'?我相信在未顯示的代碼中,您將在容器(可以鎖定和解鎖)和內部實際圖像(不能)之間交替。通常會鎖定* container *頁面項目,而不是其內部的圖形對象。 – usr2564301 2014-10-03 08:38:01
'image'變量是一個'Image'對象。根據IDS文檔,'locked'是'Image'對象的讀/寫布爾屬性,指定圖像是否被鎖定。我相信我可以通過'image.parent'訪問容器物品 - 也許我可以嘗試解鎖,看看會發生什麼? – 2014-10-03 08:50:09
讓我感到驚訝。我的主要工作馬是CS4,所以我只檢查了該版本,並且無法鎖定圖形。但是:從下一個版本開始,你*可以*。我不知道鎖定或解鎖容器是否也會修改其內容。看起來文件也不清楚。 – usr2564301 2014-10-03 08:56:21