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 属性 帧内的图像似乎是 “不适用”.