|
可以配合 ai_scriptmix-master 插件使用方便
复制已下内容到记事本打开就行 另存jsx格式
需要再ai文档里写上尺寸例如以下
8x10cm
5x8cm
9x9cm
以这样的格式生成的
- #target illustrator
- if (app.documents.length > 0 && app.selection.length > 0) {
- var doc = app.activeDocument;
- var selectedItems = app.selection;
- // 循环处理每个选中的文本框
- for (var j = 0; j < selectedItems.length; j++) {
- var selectedItem = selectedItems[j];
- if (selectedItem.typename == "TextFrame") {
- var textFrame = selectedItem;
- var textContents = textFrame.contents.split('\r');
- // 获取文本框的左上角坐标
- var textBounds = textFrame.geometricBounds;
- var initialLeft = textBounds[0];
- var initialTop = textBounds[1];
- // 循环处理每行文本
- for (var i = 0; i < textContents.length; i++) {
- var textContent = textContents[i].replace(/^\s+|\s+$/g, ''); // 手动去除前后的空格
- // 使用正则表达式匹配格式为 "8x10cm" 的文本
- var dimensions = textContent.match(/^(\d+(?:\.\d+)?)\s*x\s*(\d+(?:\.\d+)?)\s*cm$/i);
- if (dimensions && dimensions.length == 3) {
- var width = parseFloat(dimensions[1]) * 28.3465; // 转换为点(points)
- var height = parseFloat(dimensions[2]) * 28.3465; // 转换为点(points)
- // 计算每个矩形的位置
- var rectLeft = initialLeft;
- var rectTop = initialTop - (i * height) - (i * 10); // 为每个矩形加上间距
- // 创建新的矩形
- var rect = doc.pathItems.rectangle(rectTop, rectLeft, width, height);
- // 可选:将矩形置于文本框后面
- rect.zOrder(ZOrderMethod.SENDTOBACK);
- } else {
- alert("第 " + (i + 1) + " 行文本格式应为 '宽度x高度cm',例如 '8x10cm'。");
- }
- }
- } else {
- alert("请选择一个文本框。");
- }
- }
- alert("所有矩形已生成。");
- } else {
- alert("请打开一个文档并选择一个或多个文本框。");
- }
复制代码
|
|