0
点赞
收藏
分享

微信扫一扫

Aijs 每个画板单独存PDF


var doc = activeDocument;
var pt = 72 / 25.4
var num_layer = undefined;
//拿到 图层写了数量的
for (var i = 0; i < doc.layers.length; i++) {
var layer = activeDocument.layers[i];
if (layer.name == '数量') num_layer = layer;
}
//取消选择
set_selection_null();
//选择数量图层里面的内容
layer_all_selected(num_layer)
var color = [0, 100, 0, 0]
var result_list = []
var sels = doc.selection;
for (i = sels.length - 1; i >= 0; i--) {
var shape = sels[i];
if (shape.typename == 'TextFrame') {
var text_color = shape.textRange.characterAttributes.fillColor;
var c = text_color.cyan;
var m = text_color.magenta;
var y = text_color.yellow;
var k = text_color.black;
if (
color[0] == c &&
color[1] == m &&
color[2] == y &&
color[3] == k
) {
var content = shape.contents;
shape = shape.createOutline();
app.redraw();//刷新
result_list.push([content, shape.geometricBounds])
app.undo();//退回上一步
}
}
}

//
var parent_path = Folder.desktop+'/'+get_name_no_suffix();
Folder(parent_path).create();
for (i = 0; i < doc.artboards.length; i++) {
var art = new Artboard(i);
var number = get_number(art,result_list)
var out_path = parent_path+'/'+get_name_no_suffix()+'-'+(i+1)+' '+number+'.pdf'
file_save_pdf(out_path,'',(i+1)+'')
}


function file_save_pdf(dest,opt,page_index) {
/**
* 保存pdf
* dest 目录 (非必填)
* opt 选项 (非必填 说几个就知道是啥了)
* [Illustrator 默认值],[印刷质量],[最小文件大小]
* 使用例子
* 默认值保存 (原路径)
* file_save_pdf()
* 自定义的3保存 (原路径)
* file_save_pdf('','3')
* 自定义的3保存 (指定路径)
* file_save_pdf('C:/Users/Administrator/Desktop/1.pdf','3')
*/
opt = is_empty(opt)?'[Illustrator 默认值]':opt;
saveOpts = new PDFSaveOptions();
saveOpts.pDFPreset = opt;
saveOpts.artboardRange = page_index;
doc.saveAs(new File(dest), saveOpts);
}

function get_name_no_suffix() {
/**
* 获取文件名 无后缀
* 返回 hd1024
*/
n = decodeURI(doc.fullName.name);
return n.substring(0, n.lastIndexOf('.'));
}
function get_name() {
/**
* 获取文件名
* 返回 hd1024.ai(也有可能 hd1024.pdf | hd1024.eps)
*/
return decodeURI(doc.fullName.name);
}


function is_empty(obj) {
/**
* 判断是不是空
*/
return obj == undefined || obj == '';
}


function addText(content, left, top) {
var text1 = doc.textFrames.add();
text1.contents = content;
text1.left = left;
text1.top = top;
}

function get_number(art, list) {
var left = art.left;
var top = art.top;
var bottom = art.bottom;
var right = art.right;
for (n in list) {
var left_list = list[n][1][0]
var top_list = list[n][1][1]
var right_list = list[n][1][2]
var bottom_list = list[n][1][3]
if(left_list>=left&&
right_list<=right&&
top_list<=top&&
bottom_list>=bottom
){
return list[n][0]
}
}

}


function Artboard(index) {

/**
* index 下标 (非必填 默认当前画板)
* 画板类用于获取画板的属性
* 宽度,高度,坐标(上下左右垂直中,水平中),简单的信息
*
* 例子
* artboard = Artboard()
* artboard = Artboard(0)
* 打印信息
* alert(artboard.info)
*/
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;
}

function layer_all_selected(layer) {
/**
* 图层所有内容被选中
* layer 图层 (必填)
*
* 例子
* 最上面的所有内容选中
* layer_all_selected(doc.layers[0])
*/
layer.hasSelectedArtwork = true
}

function set_selection_null() {
/**
* 取消选择
*/
doc.selection = undefined;
}


举报

相关推荐

0 条评论