这是我在这里的第一个问题,希望我的问题在下面得到很好的解释。作为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;
否则,由于锁定在框架内的属性似乎是"不适用" 。