Indesign JavaScript:如何在文本框架内旋转图像



这是我在这里的第一个问题,希望我的问题在下面得到很好的解释。作为JavaScript的新手,我正在编写一个脚本,以将(数百个(图像放在我的Indesign文档中。

现在,由于以下问题,我被困了。将图像放入文本框架中后,我想将其中的一些旋转180,而另一些则只需90度(取决于外部变量(。虽然180度通过FlipItem((效果很好,但通过转换((旋转90度。

应用于文本框架,转换效果很好,但在图像对象上应用时效果很好(错误:myfig.transform是没有函数(。我一直在这个主题上使用这个很好的答案中的片段,但似乎我错过了一些关键的东西。

有人可以指出为什么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.mit.edu/idcs6js/pc_pageitem.html#place the返回值 pageItem.place(文件名:file [,showeOptions:bool = false] [,with properties:object](
array

所以如果您宁愿尝试

var myFig = myTF.place (File (myPath), false)[0];

最后一个指令

myFig.transform (cs, ap, mx90);

将起作用。但是您将不得不禁用该行

//myFig.locked = false;

否则,由于锁定在框架内的属性似乎是"不适用"

最新更新