//本方法是取出一个Rectangle的两对坐标,然后通过相减获得,参见Indesign CS4的IDML文档中的四组坐标,注意:返回的单位为"点points“
function RectangleWidthHeight(myRectangle)
{
var myRectangleTopLeft = myRectangle.resolve(AnchorPoint.topLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
var myRectangleTopRight = myRectangle.resolve(AnchorPoint.topRightAnchor, CoordinateSpaces.pasteboardCoordinates, true);
var myRectangleBottomLeft = myRectangle.resolve(AnchorPoint.bottomLeftAnchor, CoordinateSpaces.pasteboardCoordinates, true);
var d1x = (myRectangleTopRight[0][0] - myRectangleTopLeft[0][0]);
var d1y = (myRectangleTopRight[0][1] - myRectangleTopLeft[0][1]);
var myWidth = hypotenuse(d1x,d1y);
var d2x = (myRectangleTopLeft[0][0] - myRectangleBottomLeft[0][0]);
var d2y = (myRectangleTopLeft[0][1] - myRectangleBottomLeft[0][1]);
var myHeight = hypotenuse(d2x,d2y);
return [myWidth,myHeight];
}
function hypotenuse(d1,d2)
{
return Math.sqrt(Math.pow(d1,2) + Math.pow(d2,2) );
}
//方法二:改变一个Rectangle的宽度
function ChangeRectangleWidth(myRectangle,newWidth)
{
var myEqmeasure = myRectangle.geometricBounds; //取出一个Rectangel的四个坐标
var y1 = myEqmeasure[0];
var y2 = myEqmeasure[2];
var x1 = myEqmeasure[1];
var x2 = x1 + newWidth;
myRectangle.geometricBounds = [y1,x1,y2,x2]; //将坐标重组然后赋值,这样就改变了Rectangle的宽度,高度同理
}
//改变TextFrame的宽度,单位为毫米
myTextFrame.textFramePreferences.textColumnFixedWidth = 300;
//获取一个TextFrame容器对象,
var myDocument = app.activeDocument;
for (var i = 0; i < myDocument.textFrames.length; i++)
{
var obj = myDocument.textFrames[i]); //同理,Rectangle/Group/links/images为相应的rectangles[i]/groups[i]/links[i]/images[i]
}