1. create.js
#include
"../entry/artboard.js";
#include
"judgement.js";
function create_color(color_type, c, m, y, k, ptname, ptinit) {
if (color_type == 'nocolor') return new NoColor();
if (color_type == 'reg') {
regColor = new SpotColor();
regColor.spot = doc.spots[doc.spots.length-1];
return regColor;
}
if (color_type == '' || color_type == 'cmyk') {
var cmykColor = new CMYKColor();
cmykColor.cyan = c;
cmykColor.magenta = m;
cmykColor.yellow = y;
cmykColor.black = k;
return cmykColor;
}
if (color_type == 'pt') {
var newSpot = undefined;
try {
newSpot = doc.spots.getByName(ptname);
} catch (e) {
newSpot = doc.spots.add();
}
newSpot.name = ptname;
newSpot.colorType = ColorModel.SPOT;
newSpot.color = create_color('', c, m, y, k);
var newSpotColor = new SpotColor();
newSpotColor.spot = newSpot;
newSpotColor.tint = ptinit;
return newSpotColor;
}
return create_color('', 0, 0, 0, 100)
}
function create_line(canvas, x1, y1, x2, y2, line_width, position, stroke_color) {
canvas = is_empty(canvas) ? doc : canvas;
line_width = is_empty(line_width) ? 0.1 * pt : line_width
position = is_empty(position) ? 'relative' : position
line = canvas.pathItems.add();
if (position == 'relative') {
line.setEntirePath([[x1, y1], [x1 + x2, y1 - y2]]);
} else {
line.setEntirePath([[x1, y1], [x2, y2]]);
}
line.strokeWidth = line_width;
if (line_width > 0 && (!is_empty(stroke_color))) {
stroke_color = is_empty(stroke_color) ? create_color() : stroke_color
line.strokeColor = stroke_color;
}
obj_evenodd(canvas, line)
return line;
}
function create_rect(canvas, x, y, width, height, line_width, expand_size, fill_color, stroke_color) {
if (x == undefined || y == undefined || width == undefined || height == undefined) return undefined
canvas = is_empty(canvas) ? doc : canvas;
line_width = is_empty(line_width) ? 0 : line_width
expand_size = is_empty(expand_size) ? 0 : expand_size
rect = canvas.pathItems.rectangle(y + expand_size, x - expand_size, width + expand_size * 2, height + expand_size * 2);
rect.strokeWidth = line_width;
if (line_width > 0 && !is_empty(stroke_color)) rect.strokeColor = stroke_color;
if (!is_empty(fill_color)) rect.fillColor = fill_color;
obj_evenodd(canvas, line)
return rect;
}
function create_rect_with_artboard(canvas, x, y, width, height, line_width, expand_size, fill_color, stroke_color, artboard) {
if (x == undefined || y == undefined || width == undefined || height == undefined) return undefined
artboard = is_empty(artboard)?new Artboard():artboard
width = width == 'artboard_width' ? artboard.width : width
height = height == 'artboard_height' ? artboard.height : height
canvas = is_empty(canvas) ? doc : canvas;
line_width = is_empty(line_width) ? 0 : line_width
expand_size = is_empty(expand_size) ? 0 : expand_size
rect = canvas.pathItems.rectangle(artboard.top - y + expand_size, artboard.left + x - expand_size, width + expand_size * 2, height + expand_size * 2);
rect.strokeWidth = line_width;
if (line_width > 0 && !is_empty(stroke_color)) rect.strokeColor = stroke_color;
if (!is_empty(fill_color)) rect.fillColor = fill_color;
obj_evenodd(canvas, rect)
return rect;
}
function create_text(canvas, content, font_name, font_size, fill_color, outline) {
canvas = is_empty(canvas) ? doc : canvas;
var text1 = canvas.textFrames.add();
content = is_empty(content) ? 'hello world' : content
font_name = is_empty(font_name) ? "MicrosoftYaHei" : font_name
font_size = is_empty(font_size) ? 12 : font_size
fill_color = is_empty(fill_color) ? create_color() : fill_color
outline = is_empty(outline) ? false : outline
text1.contents = content;
text1.textRange.characterAttributes.fillColor = fill_color;
text1.textRange.characterAttributes.size = font_size;
try {
text_font = textFonts.getByName(font_name)
} catch (e) {
try {
text_font = textFonts[font_name]
} catch (e) {
text_font = textFonts.getByName('MicrosoftYaHei')
}
}
text1.textRange.characterAttributes.textFont = text_font;
if (outline) {
text1 = text1.createOutline();
obj_evenodd(canvas, text1)
}
return text1;
}
function obj_evenodd(canvas, obj) {
if ('CompoundPathItem' == canvas.typename) obj.evenodd = true
}
2.file.js
#include "judgement.js";
function file_save_pdf(dest,opt) {
dest = is_empty(dest)?get_pdf_name():dest;
opt = is_empty(opt)?'[Illustrator 默认值]':opt;
saveOpts = new PDFSaveOptions();
saveOpts.pDFPreset = opt;
doc.saveAs(new File(dest), saveOpts);
}
function file_words_save_txt(file_name,words) {
file_name = is_empty(file_name)?get_txt_name():file_name
f = new File(file_name);
f.open('w');
f.write(words);
f.close();
}
function file_list_save_txt(file_name,list_) {
file_name = is_empty(file_name)?get_txt_name():file_name
f = new File(file_name);
f.open('w');
for(i=0;i<list_.length;i++){
f.write(list_[i]+'\r\n');
}
f.close();
}
function get_pdf_name() {
return get_parent()+'/'+get_name_no_suffix()+'.pdf';
}
function get_ai_name() {
return get_parent()+'/'+get_name_no_suffix()+'.ai';
}
function get_txt_name() {
return get_parent()+'/'+get_name_no_suffix()+'.txt';
}
function get_name_no_suffix() {
n = decodeURI(doc.fullName.name);
return n.substring(0, n.lastIndexOf('.'));
}
function get_name() {
return decodeURI(doc.fullName.name);
}
function get_parent() {
return decodeURI(doc.fullName.parent);
}
3.judgement.js
function is_empty(obj) {
return obj == undefined || obj == '';
}
4. layer.js
#include "judgement.js";
var doc = app.activeDocument;
function obj_move_to_active_layer(obj, layer) {
if (is_empty(obj))return;
obj.move(layer, ElementPlacement.PLACEATEND);
}
function objs_move_to_active_layer(objs, layer) {
if (is_empty(objs))return;
for (i = 0; i < objs.length; i++) {
obj_move_to_active_layer(objs[i], layer);
}
}
function layer_all_selected(layer) {
layer.hasSelectedArtwork = true
}
function create_layer(layer_name) {
try{
return doc.layers.getByName(layer_name)
}catch(e){
layer_name = is_empty(layer_name) ? 'layer' : layer_name;
layer_ = doc.layers.add();
layer_.name = layer_name;
return layer_;
}
}
5.list.js
var doc = app.activeDocument;
function list_duplicate(objs) {
if (is_empty(objs)) return;
var list_ = new Array();
for (i = 0; i < objs.length; i++) {
newitem = objs[i].duplicate();
list_.push(objs[i])
}
return list_;
}
function list_duplicate_and_selected(objs) {
var list_ = new Array();
for (i = 0; i < objs.length; i++) {
newitem = objs[i].duplicate();
newitem.selected=true;
list_.push(objs[i])
}
return list_;
}
function list_to_group(objs, group_item) {
group_item = is_empty(group_item)?doc.groupItems.add():group_item;
for (i = 0; i < objs.length; i++)objs[i].move(group_item, ElementPlacement.INSIDE);
}
6.set.js
function set_color_fill(obj, color) {
if(obj == undefined) return
if(obj.fillColor == undefined) return
if(color == undefined) return
if(color == undefined && obj.fillColor == undefined) return
obj.fillColor = color;
return obj;
}
function set_color_stroke(obj, color) {
if(obj == undefined) return
if(obj.strokeColor == undefined) return
if(color == undefined) return
obj.strokeColor = color
return obj;
}
function set_position_xy(obj, x, y) {
if (obj == undefined || x == undefined || y == undefined) return
obj.left = x;
obj.top = y;
return obj;
}
function set_size_wh(obj, w, h) {
if (w == undefined || w == undefined) return
obj.width = w;
obj.height = h;
return obj;
}
function set_selection_null() {
doc.selection = undefined;
}
7.artboard.js
var doc = app.activeDocument;
var pt = 72 / 25.4
function Artboard(index) {
index = index == undefined ? doc.artboards.getActiveArtboardIndex() : index
var abBounds = doc.artboards[index].artboardRect;
this.width = abBounds[2] - abBounds[0];
this.height = abBounds[1] - abBounds[3];
this.left = abBounds[0];
this.top = abBounds[1];
this.bottom = abBounds[3];
this.right = abBounds[2];
this.centerX = this.left + this.width / 2;
this.centerY = this.bottom + this.height / 2;
this.info = '当前是第' + index + '个页面\n页面尺寸为' + this.width / pt + 'x' + this.height / pt + ' mm'
return this;
}
测试代码
#include
"utils/create.js";
#include
"utils/file.js";
#include
"utils/judgement.js";
#include
"utils/layer.js";
#include
"utils/list.js";
#include
"utils/set.js";
info2 = ''
artboard_info = '以下是artboard.js\n'
artboard = Artboard()
artboard_info += 'left:' + artboard.left + '\n';
artboard_info += 'top:' + artboard.top + '\n';
artboard_info += 'right:' + artboard.right + '\n';
artboard_info += 'bottom:' + artboard.bottom + '\n';
artboard_info += 'width:' + artboard.width + '\n';
artboard_info += 'height:' + artboard.height + '\n';
artboard_info += 'centerX:' + artboard.centerX + '\n';
artboard_info += 'centerY:' + artboard.centerY + '\n';
info2 += artboard_info+'\n\n';
file_info = '以下是file.js\n'
file_save_pdf('C:/Users/Administrator/Desktop/file_save_pdf.pdf')
file_words_save_txt('C:/Users/Administrator/Desktop/file_words_save_txt.txt', 'dj\r\nll简单\r\n123')
file_list_save_txt('c:/Users/Administrator/Desktop/file_list_save_txt.txt', ['中文CPC', 'http://www.cnprint.org/bbs/'])
file_info += 'get_pdf_name:' + get_pdf_name() + '\n'
file_info += 'get_ai_name:' + get_ai_name() + '\n'
file_info += 'get_txt_name:' + get_txt_name() + '\n'
file_info += 'get_name_no_suffix:' + get_name_no_suffix() + '\n'
file_info += 'get_name:' + get_name() + '\n'
file_info += 'get_parent:' + get_parent() + '\n'
info2 += file_info;
sels = doc.selection;
color_red = create_color('', 0, 100, 100, 0);
if (sels.length > 0) {
set_color_fill(sels[0], color_red)
color_black = create_color('', 0, 100, 100, 0);
set_color_fill(sels[0], color_black)
color_485C = create_color('pt', 0, 100, 95, 0, '485C', 100);
set_color_fill(sels[0], color_485C)
color_485C_50 = create_color('pt', 0, 100, 95, 0, '485C', 50);
set_color_fill(sels[0], color_485C_50)
color_nocolor = create_color('nocolor');
set_color_fill(sels[0], color_nocolor)
color_reg = create_color('reg');
set_color_fill(sels[0], color_reg)
}
create_line(doc, 10, 10, 30, 30, 0.1 * pt, 'abs', color_red)
create_line(doc, 0, 0, 20, 5, 0.1 * pt, 'relative', color_red)
create_line('', 10, 10, 30, 0)
g = doc.groupItems.add();
jx = 3 * pt
create_line(g, artboard.left - jx, artboard.bottom, -jx, 0, 0.1 * pt, '', create_color('reg'));
create_line(g, artboard.left, artboard.bottom - jx, 0, jx, 0.1 * pt, '', create_color('reg'));
create_line(g, artboard.left - jx, artboard.bottom - jx, -jx, 0, 0.1 * pt, '', create_color('reg'));
create_line(g, artboard.left - jx, artboard.bottom - jx, 0, jx, 0.1 * pt, '', create_color('reg'));
c = doc.compoundPathItems.add();
create_line(c, artboard.right + jx, artboard.bottom, jx, 0, 0.1 * pt, '', create_color('reg'));
create_line(c, artboard.right, artboard.bottom - jx, 0, jx, 0.1 * pt, '', create_color('reg'));
create_line(c, artboard.right + jx, artboard.bottom - jx, jx, 0, 0.1 * pt, '', create_color('reg'));
create_line(c, artboard.right + jx, artboard.bottom - jx, 0, jx, 0.1 * pt, '', create_color('reg'));
create_rect('', 0, 0, 5 * pt, 10 * pt, 0.1, 0, create_color('', 100, 0, 100, 0), create_color('nocolor'))
create_rect('', 10 * pt, 0, 10 * pt, 10 * pt, 0.1, 3 * pt, create_color('', 0, 0, 100, 0), create_color('nocolor'))
create_rect('', 30 * pt, 0, 10 * pt, 10 * pt, 0.1, -3 * pt, create_color('', 0, 0, 100, 0), create_color('nocolor'))
line_width = 0.1 * pt;
create_rect_with_artboard('', 0, 0, 50, 50, line_width, 0, regColor, create_color('nocolor'), new Artboard())
create_rect_with_artboard('', 0, 0, 50, 50, line_width, 0, regColor, create_color('nocolor'), new Artboard(1))
for (i = 0; i < doc.artboards.length; i++) {
create_rect_with_artboard('', 0, 0, 'artboard_width', 'artboard_height', line_width, 0, create_color('nocolor'), create_color('', 0, 100, 0, 0), new Artboard(i))
}
for (i = 0; i < doc.artboards.length; i++) {
create_rect_with_artboard('', 0, 0, 'artboard_width', 'artboard_height', line_width, -3 * pt, create_color('nocolor'), create_color('', 0, 100, 0, 0), new Artboard(i))
}
for (i = 0; i < doc.artboards.length; i++) {
create_rect_with_artboard('', 0, 0, 'artboard_width', 'artboard_height', line_width, 3 * pt, create_color('nocolor'), create_color('', 0, 100, 0, 0), new Artboard(i))
}
for (i = 0; i < doc.artboards.length; i++) {
r1 = create_rect_with_artboard('', 0, 0, 'artboard_width', 'artboard_height', line_width, 3 * pt, create_color('nocolor'), create_color('', 0, 100, 0, 0), new Artboard(i))
set_size_wh(r1, r1.width - 3 * pt, r1.height)
r1.left += 3 * pt;
}
t = create_text('', '你在就好了', 'MicrosoftYaHei', 24, create_color('pt', 100, 100, 0, 0, 'cut', 100), true)
set_color_fill(t, create_color('', 100, 0, 0, 0))
t2 = create_text('', '你在就好了', 'MicrosoftYaHei', 24, create_color('pt', 100, 100, 0, 0, 'cut', 100))
artboard = new Artboard(2)
set_position_xy(t2, artboard.centerX - t2.width / 2, artboard.centerY + t2.height / 2)
t3 = create_text('', info2, 'MicrosoftYaHei', 24, create_color('pt', 100, 100, 0, 0, 'cut', 100))
set_position_xy(t3,100,100)