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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值