用于添加多边形(不规则形状文本框)并向其添加文本的 indesign 脚本
indesign script to add a polygon (irregular shape textframe) and add text to it
我需要一个 Indesign 脚本来向页面添加不规则文本框(多边形)并向其中添加文本内容。
到目前为止,我有这段代码。但它是一个普通的文本框。
var doc = app.documents.add();
var textFrame = doc.textFrames.add();
textFrame.properties =
{
geometricBounds : [ 0,0,100,100 ],
strokeWidth : 0,
fillColor : "None",
contents : "Hello World!"
}
我也可以添加这个多边形,但我不能向它添加文本。
var doc = app.documents.add();
var polygon = doc.polygons.add();
var points = [
[100,100],
[150,100],
[200,200],
[120,150],
[100,100],
]
polygon.paths.item(0) = points;
感谢您的帮助!
不确定这是否是您工作流程的最佳方式,但可以通过这种笨拙的方式完成:
var doc = app.documents.add();
var polygon = doc.polygons.add();
var points = [
[100,100],
[150,100],
[200,200],
[120,150],
// [100,100], // this point doesn't need, since a polygon is a closed path
];
polygon.paths[0].entirePath = points;
polygon.contentType = ContentType.TEXT_TYPE; // convert the polygon into a text frame
var poly_textFrame = doc.textFrames.lastItem(); // get the last text frame
poly_textFrame.contents = 'Hello World!'; // change contents of the frame
这种方法的问题是我不确定新文本框是否始终是文本框集合中的最后一项。还需要进行体内试验。
我需要一个 Indesign 脚本来向页面添加不规则文本框(多边形)并向其中添加文本内容。 到目前为止,我有这段代码。但它是一个普通的文本框。
var doc = app.documents.add();
var textFrame = doc.textFrames.add();
textFrame.properties =
{
geometricBounds : [ 0,0,100,100 ],
strokeWidth : 0,
fillColor : "None",
contents : "Hello World!"
}
我也可以添加这个多边形,但我不能向它添加文本。
var doc = app.documents.add();
var polygon = doc.polygons.add();
var points = [
[100,100],
[150,100],
[200,200],
[120,150],
[100,100],
]
polygon.paths.item(0) = points;
感谢您的帮助!
不确定这是否是您工作流程的最佳方式,但可以通过这种笨拙的方式完成:
var doc = app.documents.add();
var polygon = doc.polygons.add();
var points = [
[100,100],
[150,100],
[200,200],
[120,150],
// [100,100], // this point doesn't need, since a polygon is a closed path
];
polygon.paths[0].entirePath = points;
polygon.contentType = ContentType.TEXT_TYPE; // convert the polygon into a text frame
var poly_textFrame = doc.textFrames.lastItem(); // get the last text frame
poly_textFrame.contents = 'Hello World!'; // change contents of the frame
这种方法的问题是我不确定新文本框是否始终是文本框集合中的最后一项。还需要进行体内试验。