文档zeroPoint
属性的值是一个由两个数字组成的数组。
- 索引 0 处的数字是 X 轴上的零点
- 索引 1 处的数字是 Y 轴上的零点。
例如:
app.activeDocument.zeroPoint;
产生[0,0]
一个新创建的文档,即一个零点没有从默认位置改变的文档。
示例用法:
创建新页面项目时,需要计算zeroPoint
值以确保将其定位在所需位置。
示例 A:
假设我们要在文档的第一页上添加一个新的方形文本框,该文本框始终位于页面的左上角,而与当前的零点位置无关。
在这种情况下,我们的代码将类似于以下内容:
var doc = app.activeDocument;
// 1. Obtain the zero point on the x axis.
var zeroPointX = doc.zeroPoint[0];
// 2. Obtain the zero point on the y axis.
var zeroPointY = doc.zeroPoint[1];
// 3. Create a new text frame that is always positioned at the top left corner
// of the first page, regardless of the zero point position.
doc.pages.item(0).textFrames.add({
geometricBounds: [
0 - zeroPointY,
0 - zeroPointX,
50 - zeroPointY,
50 - zeroPointX
],
contents: "Lorem ipsum dolore"
});
如您所见,在前面的示例中,我们在为新文本框架定义所需值时相应地从所需值中减去zeroPointX
和值。zeroPointY
geometricBounds
示例 B:
设置时计算zeroPoint
值geometricBounds
可能会变得乏味,尤其是在创建多个页面项时。它通常更简单、更有效:
- 获取当前零点
[x,y]
。
- 将 x 和 y 零点都设置为零。
- 然后创建/添加新的页面项目。
- 最后,将零点恢复到其原始位置。
以下要点演示了上述方法:
var doc = app.activeDocument;
// 1. Obtain the original zero point.
var originalZeroPoints = doc.zeroPoint;
// 2. Set x and y zero points both to zero.
doc.zeroPoint = [0,0];
// 3. Create a new text frame that is always positioned at the top left corner
// of the first page, regardless of the zero point position.
doc.pages.item(0).textFrames.add({
geometricBounds: [0, 0, 50, 50],
contents: "Lorem ipsum dolore"
});
// 4. Revert the zero point to original position.
doc.zeroPoint = originalZeroPoints;
如您所见,在前面的示例中,它产生与"Example A"相同的结果,但是在设置 时我们不进行任何计算geometricBounds
,而是根据需要简单地定义我们的值,即geometricBounds: [0, 0, 50, 50]