InDesign javascript:如何在文本框中旋转图像?
InDesign javascript: How to rotate an image within a text frame?
这是我的第一个问题,我希望我的问题在下面得到很好的解释。作为 javascript 的新手,我正在编写一个脚本以在我的 InDesign 文档中放置(数百个)图像。
现在我因为以下问题卡住了。将图像放入文本框后,我想将其中一些图像旋转 180 度,而其他图像仅旋转 90 度(取决于外部变量)。虽然通过 flipItem() 进行 180 度旋转效果很好,但通过 transform() 进行 90 度旋转则不然。
应用于文本框,转换效果很好,但应用于图像对象时效果不佳(错误:myFig.transform 没有功能)。我一直在使用 this very nice answer on the topic 中的片段,但似乎我错过了一些重要的东西。
有人可以指出为什么 transform() 在下面的代码中不起作用,什么可以解决问题?
var myDocument = app.documents.add ();
// create a random text frame
var myTF = myDocument.textFrames.add ();
myTF.geometricBounds = [20, 100, 100, 20];
const cs = CoordinateSpaces.pasteboardCoordinates;
const ap = AnchorPoint.centerAnchor;
var mx90 = app.transformationMatrices.add ({counterclockwiseRotationAngle:90});
// place an image into the text frame
var myPath = ""; // enter absolute path to an image (mine are JPEG)
var myFig = myTF.place (File (myPath), false);
myFig.locked = false;
// works fine
myTF.flipItem (Flip.BOTH, AnchorPoint.CENTER_ANCHOR);
// works fine
myTF.transform (cs, ap, mx90);
// error
myFig.transform (cs, ap, mx90);
根据http://jongware.mit.edu/idcs6js/pc_PageItem.html#place的return值
PageItem.place (文件名: 文件[ showingOptions: bool=false][ withProperties: Object])
是一个数组
所以如果你想试试
var myFig = myTF.place (File (myPath), false)[0];
最后一条指令
myFig.transform (cs, ap, mx90);
会起作用。但是你必须禁用该行
//myFig.locked = false;
否则会抛出错误,因为 locked 属性 帧内的图像似乎是 “不适用”.
这是我的第一个问题,我希望我的问题在下面得到很好的解释。作为 javascript 的新手,我正在编写一个脚本以在我的 InDesign 文档中放置(数百个)图像。
现在我因为以下问题卡住了。将图像放入文本框后,我想将其中一些图像旋转 180 度,而其他图像仅旋转 90 度(取决于外部变量)。虽然通过 flipItem() 进行 180 度旋转效果很好,但通过 transform() 进行 90 度旋转则不然。
应用于文本框,转换效果很好,但应用于图像对象时效果不佳(错误:myFig.transform 没有功能)。我一直在使用 this very nice answer on the topic 中的片段,但似乎我错过了一些重要的东西。
有人可以指出为什么 transform() 在下面的代码中不起作用,什么可以解决问题?
var myDocument = app.documents.add ();
// create a random text frame
var myTF = myDocument.textFrames.add ();
myTF.geometricBounds = [20, 100, 100, 20];
const cs = CoordinateSpaces.pasteboardCoordinates;
const ap = AnchorPoint.centerAnchor;
var mx90 = app.transformationMatrices.add ({counterclockwiseRotationAngle:90});
// place an image into the text frame
var myPath = ""; // enter absolute path to an image (mine are JPEG)
var myFig = myTF.place (File (myPath), false);
myFig.locked = false;
// works fine
myTF.flipItem (Flip.BOTH, AnchorPoint.CENTER_ANCHOR);
// works fine
myTF.transform (cs, ap, mx90);
// error
myFig.transform (cs, ap, mx90);
根据http://jongware.mit.edu/idcs6js/pc_PageItem.html#place的return值
PageItem.place (文件名: 文件[ showingOptions: bool=false][ withProperties: Object])
是一个数组
所以如果你想试试
var myFig = myTF.place (File (myPath), false)[0];
最后一条指令
myFig.transform (cs, ap, mx90);
会起作用。但是你必须禁用该行
//myFig.locked = false;
否则会抛出错误,因为 locked 属性 帧内的图像似乎是 “不适用”.