Files
DP/psmark/JSX12.py

191 lines
6.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
dxf12_jscode = """
批量套数写入()
function 批量套数写入() {
app.preferences.rulerUnits = Units.CM;
var 主文档 = app.activeDocument;
var 主文档名称 = 主文档.name;
// 遍历当前打开的文档
for (var i = 0; i < app.documents.length; i++) {
var document = app.documents[i];
var documentName = document.name;
// 判断文档名称是否与主文档名称不相同
if (documentName !== 主文档名称) {
// 设置当前文档为活动文档
app.activeDocument = document;
var 匹配图层数组 = 遍历图层查找P1();
// 遍历匹配图层数组
for (var j = 0; j < 匹配图层数组.length; j++) {
var 当前匹配图层 = 匹配图层数组[j];
}
// 选中当前匹配图层
// 获取当前选区
var currentSelection = app.activeDocument.selection;
// 确保当前选区不为空且为矩形选区
if (currentSelection != null && currentSelection.hasOwnProperty('bounds')) {
// 进行缩放操作
app.activeDocument.activeLayer = 当前匹配图层;
// 载入选区
载入选区();
// 获取当前选区的坐标
var bounds = currentSelection.bounds;
// 获取当前选区的宽度和高度(以 cm 为单位)
var resolution = app.activeDocument.resolution;
var widthInCM = (bounds[2].as("cm") - bounds[0].as("cm"));
var heightInCM = (bounds[3].as("cm") - bounds[1].as("cm"));
var 当前P1图层宽高信息 = "宽度:" + widthInCM.toFixed(2) + "cm高度" + heightInCM.toFixed(2) + "cm";
// 获取当前裁片套数
var 搜索关键词 = "P1";
var 匹配的图层数量 = 获取匹配图层数量(搜索关键词);
var 当前裁片套数 = "一段" + 匹配的图层数量 + "";
// 创建新图层并设置名称
/// var 新图层 = 主文档.artLayers.add();
// var 新图层 = "当前文档宽度缩水" + 宽度值 + "高度缩水" + 高度值;
// 移动选区到新图层
// currentSelection.cut();
// app.activeDocument.paste();
// alert(当前裁片套数);
// alert( 当前P1图层宽高信息);
// 文件简介写入
文件简介写入(当前裁片套数, 当前P1图层宽高信息 );
// 这里删除了文件简介的写入将缩水值修改按钮
// 调整图像尺寸(宽度值, 高度值);
////这里取消了保存功能 为了防止运行的时候变卡
//activeDocument.save();
} else {
// alert("没有找到匹配的图层。");
}
}
}
app.activeDocument=主文档
// alert("写入信息成功","来自左威的提醒");
}
function 文件简介写入(当前裁片套数, 当前P1图层宽高信息) {
var d = new ActionDescriptor();
var r = new ActionReference();
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("fileInfo"));
r.putEnumerated(stringIDToTypeID("document"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
d.putReference(stringIDToTypeID("null"), r);
var d1 = new ActionDescriptor();
d1.putString(stringIDToTypeID("caption"), 当前裁片套数);
d1.putString(stringIDToTypeID("keywords"), 当前P1图层宽高信息);
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("fileInfo"), d1);
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
}
function 调整图像尺寸(宽度值, 高度值) {
var 动作描述 = new ActionDescriptor();
动作描述.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("percentUnit"), 100 + 宽度值);
动作描述.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("percentUnit"), 100 + 高度值);
动作描述.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
executeAction(stringIDToTypeID("imageSize"), 动作描述, DialogModes.NO);
}
function 载入选区() //载入选区
{
var d = new ActionDescriptor();
var r = new ActionReference();
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
d.putReference(stringIDToTypeID("null"), r);
var r1 = new ActionReference();
r1.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("transparencyEnum"));
d.putReference(stringIDToTypeID("to"), r1);
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
}
function 遍历图层查找P1() {
var 匹配图层数组 = [];
var 文档 = app.activeDocument;
// 遍历所有图层
function 遍历所有图层(图层) {
if (图层.typename === "LayerSet") {
for (var i = 0; i < 图层.layers.length; i++) {
遍历所有图层(图层.layers[i]);
}
} else {
var 图层名分割数组 = 图层.name.split("-"); // 假设分割符是 "_"
if (图层名分割数组[0] === "P1") { // 精确匹配
匹配图层数组.push(图层);
}
}
}
// 开始遍历
for (var j = 0; j < 文档.layers.length; j++) {
遍历所有图层(文档.layers[j]);
}
return 匹配图层数组;
}
function 获取匹配图层数量(搜索关键词) {
var 匹配图层数量 = 0;
// 递归遍历图层及其子图层
function 遍历图层(图层) {
if (图层.typename === "LayerSet") {
for (var i = 0; i < 图层.layers.length; i++) {
遍历图层(图层.layers[i]);
}
} else {
// 进行模糊匹配和精确分割匹配
if (图层.name.indexOf(搜索关键词) !== -1 && 精确分割匹配图层(图层.name, 搜索关键词)) {
匹配图层数量++;
}
}
}
// 精确分割匹配图层名
function 精确分割匹配图层(图层名, 搜索词) {
var 图层名分割数组 = 图层名.split("-"); // 假设分割符是 "_"
return 图层名分割数组[0] === 搜索词;
}
var 当前文档 = app.activeDocument;
var 所有图层 = 当前文档.layers;
for (var i = 0; i < 所有图层.length; i++) {
遍历图层(所有图层[i]);
}
return 匹配图层数量;
}
"""