首页 > 其他分享 >Aijs 每个画板单独存PDF

Aijs 每个画板单独存PDF

时间:2023-02-01 12:06:49浏览次数:47  
标签:layer color 画板 Aijs list doc var PDF left


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;
}


标签:layer,color,画板,Aijs,list,doc,var,PDF,left
From: https://blog.51cto.com/u_10780206/6031165

相关文章

  • aijs 关于 获取 类型的 constructor很多有用的信息
    varve=app.version;try{if(ve.split(".").length>1){ve=eval(ve.split(".")[0]);}else{ve=eval(ve);};}catch(e){ve=17;};if(ve>16){va......
  • aijs 遍历字典
    varperson={fname:"John",lname:"Doe",age:25};for(xinperson){alert("key"+x)alert("value"+person[x]);}......
  • aijs 对象排序
    1.字典对象functiondictGetValue(value){for(dictGetValueIndexinvalue)returnvalue[dictGetValueIndex]}functiondictGetKey(value){for(dictGetKeyInd......
  • aijs 添加图形 线条与矩形
    varcanvas=activeDocument.groupItems.add();varpt=72/25.4;//把需要添加的图形放入列表varshapes=newArray();shapes.push(newShapeLine(0,0,20,20,0.2,......
  • aijs描边填色
    s=app.activeDocument.pathItemsmm=72/25.4sp=SPOT("diecut")for(vari=0;i<s.length;i++){varw=s[i].width/mm;varh=s[i].height/mm;......
  • aijs 删除隐藏图层
    for(vari=activeDocument.layers.length-1;i>=0;i--){varlayer=activeDocument.layers[i];if(!layer.visible){layer.visible=true;layer.re......
  • 操作系统导论 高清PDF
    内容简介这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘和I/O子系统、文件系......
  • 如何通过Java应用程序添加或删除 PDF 中的附件
    当我们在制作PDF文件或者PPT演示文稿的时候,为了让自己的文件更全面详细,就会在文件中添加附件。并且将相关文档附加到PDF可以方便文档的集中管理和传输。那么如何添加或删......
  • PHPMyWind编辑器支持pdf粘贴
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml......
  • 使用 vue-pdf 踩坑记录
    嵌入小程序里的h5里有一个查看pdf的功能,在h5里可以正常打开pdf,但是在小程序的webview里却打不开。为了解决这个问题踩了好多坑......