我试图通过javascript将插图画面中的对象放置在艺术板的左下方。我可以使用javascript访问该对象并执行它的功能,如“旋转”
if ( app.documents.length > 0) {
doc = app.activeDocument;
}
function traceImage(doc) {
doc.pageItems[0].rotate (30);
}
traceImage(doc);
但是我找不到一种简单的方法来定位/对齐艺术板底部/左侧的“pageItems [0]”。除了计算它的当前距离然后移动它之外,还有一种更简单的方法吗?感谢。
答案 0 :(得分:2)
这可能比这更简单,但这很有效。
if ( app.documents.length > 0) {
doc = app.activeDocument;
// Get the active Artboard index
var activeAB = doc.artboards[doc.artboards.getActiveArtboardIndex()];
// Get the Height of the Artboard
var artboardBottom = activeAB.artboardRect[3];
// The page item you want to move. Reference it how you will. This just
// obviously grabs the first pageItem in the document.
var myPageItem = doc.pageItems[0];
// Here is where the magic happens. Set the poition of the item.
// [0,0] would be at the top left, so we have to compensate for the artboard
// height. We add myPageItem's height for offset, or we'd end up BELOW
// the artboard.
myPageItem.position = [0, artboardBottom + myPageItem.height];
}
基本上,我们必须将pageItem的左上角设置为画板的左下角。不幸的是,这会使我们的pageItem 低于画板,所以我们通过pageItem的高度调整偏移量:
答案 1 :(得分:0)
同样,如果您希望将项目置于画板中心,则需要稍微处理高度和宽度。
if ( app.documents.length > 0) {
doc = app.activeDocument;
// Get the active Artboard index
var activeAB = doc.artboards[doc.artboards.getActiveArtboardIndex()];
// Get the Width of the Artboard
var artboardRight = activeAB.artboardRect[2];
// Get the Height of the Artboard
var artboardBottom = activeAB.artboardRect[3];
// The page item you want to move. Reference it how you will. This just
// obviously grabs the first pageItem in the document.
var myPageItem = doc.pageItems[0];
// Here is where the magic happens. Set the position of the item.
// [0,0] would be at the top left, so we have to compensate for the artboard
// height and width. We add item's height then split it for the vertical
// offset, or we'd end up BELOW the artboard.
// Then we subtract the item's width and split the difference to center the
// item horizontally.
var horziontalCenterPosition = (artboardRight - myPageItem.width)/2;
var verticalCenterPosition = (artboardBottom + myPageItem.height)/2;
myPageItem.position = [horziontalCenterPosition, verticalCenterPosition];
}