Files
DP/PSMARK代码块/SO样打印拼贴加字.jsx

341 lines
9.7 KiB
JavaScript
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.
var dialog = new Window("dialog");
dialog.text = "打印拼贴软件 使用前请看规则";
dialog.orientation = "row";
dialog.alignChildren = ["left","top"];
dialog.spacing = 10;
dialog.margins = 16;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.orientation = "column";
group1.alignChildren = ["fill","top"];
group1.spacing = 10;
group1.margins = 0;
// PANEL1
// ======
var panel1 = group1.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "S/O样自动连晒";
panel1.preferredSize.height = 205;
panel1.orientation = "column";
panel1.alignChildren = ["left","top"];
panel1.spacing = 10;
panel1.margins = 10;
var statictext1 = panel1.add("statictext", undefined, undefined, {name: "statictext1"});
statictext1.text = "宽高设定cm:";
// GROUP2
// ======
var group2 = panel1.add("group", undefined, {name: "group2"});
group2.orientation = "row";
group2.alignChildren = ["left","center"];
group2.spacing = 10;
group2.margins = 0;
var statictext2 = group2.add("statictext", undefined, undefined, {name: "statictext2"});
statictext2.text = "宽度";
var edittext1 = group2.add('edittext {properties: {name: "edittext1"}}');
edittext1.preferredSize.width = 60;
var statictext3 = group2.add("statictext", undefined, undefined, {name: "statictext3"});
statictext3.text = "宽度";
var edittext2 = group2.add('edittext {properties: {name: "edittext2"}}');
edittext2.preferredSize.width = 60;
// GROUP3
// ======
var group3 = panel1.add("group", undefined, {name: "group3"});
group3.orientation = "row";
group3.alignChildren = ["left","center"];
group3.spacing = 10;
group3.margins = 0;
var statictext4 = group3.add("statictext", undefined, undefined, {name: "statictext4"});
statictext4.text = "字体属性:";
var dropdown1_array = ["文件名"];
var dropdown1 = group3.add("dropdownlist", undefined, undefined, {name: "dropdown1", items: dropdown1_array});
dropdown1.selection = 0;
dropdown1.preferredSize.width = 100;
// GROUP4
// ======
var group4 = panel1.add("group", undefined, {name: "group4"});
group4.orientation = "row";
group4.alignChildren = ["left","center"];
group4.spacing = 10;
group4.margins = 0;
var statictext5 = group4.add("statictext", undefined, undefined, {name: "statictext5"});
statictext5.text = "字体方向:";
var dropdown2_array = ["以下对齐"];
var dropdown2 = group4.add("dropdownlist", undefined, undefined, {name: "dropdown2", items: dropdown2_array});
dropdown2.selection = 0;
dropdown2.preferredSize.width = 100;
// GROUP5
// ======
var group5 = panel1.add("group", undefined, {name: "group5"});
group5.orientation = "row";
group5.alignChildren = ["left","center"];
group5.spacing = 10;
group5.margins = 0;
var statictext6 = group5.add("statictext", undefined, undefined, {name: "statictext6"});
statictext6.text = "字体大小:";
var edittext3 = group5.add('edittext {properties: {name: "edittext3"}}');
edittext3.text ="60"
edittext3.preferredSize.width = 60;
// PANEL1
// ======
var group6 = panel1.add("group", undefined, {name: "group6"});
group6.orientation = "row";
group6.alignChildren = ["left","center"];
group6.spacing = 10;
group6.margins = 0;
var statictext7 = group6.add("statictext", undefined, undefined, {name: "statictext7"});
statictext7.text = "文件路径:";
var button1 = group6.add("button", undefined, undefined, {name: "button1"});
button1.text = "输出文件夹目录";
button1.preferredSize.width = 100;
// GROUP1
// ======
var progressbar1 = group1.add("progressbar", undefined, undefined, {name: "progressbar1"});
progressbar1.maxvalue = 100;
progressbar1.value = 50;
progressbar1.preferredSize.width = 50;
progressbar1.preferredSize.height = 4;
// GROUP6
// ======
var group6 = dialog.add("group", undefined, {name: "group6"});
group6.orientation = "column";
group6.alignChildren = ["fill","top"];
group6.spacing = 10;
group6.margins = 0;
var ok = group6.add("button", undefined, undefined, {name: "ok"});
ok.text = "执行";
ok.alignment = ["center","top"];
var cancel = group6.add("button", undefined, undefined, {name: "cancel"});
cancel.text = "取消";
cancel.alignment = ["fill","top"];
var button3 = group6.add("button", undefined, undefined, {name: "button3"});
button3.text = "关于";
button3.alignment = ["right","top"];
var button4 = group6.add("button", undefined, undefined, {name: "button4"});
button4.text = "规则";
button4.alignment = ["right","top"];
button1.onClick=function(){
button1.text =Folder.selectDialog ("输出文件夹目录").fsName;
}
button3.onClick = function () {
alert("by jimi 2022.8.9 裁片自动排版软件18620223577",dialog.text+"----关于");
}
button4.onClick = function () {
alert("须在D盘建立一个名为*输入*的文件夹",dialog.text+"----使用须知");
}
//处理函数
ok .onClick=function(){
//~ //~ if (myEditText!="") {
var myFolder=new Folder(button1.text)
//打开文件夹中的每一个文件开始处理
var myFiles=myFolder.getFiles ("*.tif*")
for(i=0 ;i< myFiles.length;i++){
//开始处理每一个文件
//断判是文件格式
if(myFiles[i] instanceof File)
app.open(myFiles[i])
var document =app.activeDocument
//合并图层
document.flatten()
//预设图案
var 当前文档名称=activeDocument.name
var idMk = charIDToTypeID( "Mk " );
var desc14 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref3 = new ActionReference();
var idPtrn = charIDToTypeID( "Ptrn" );
ref3.putClass( idPtrn );
desc14.putReference( idnull, ref3 );
var idUsng = charIDToTypeID( "Usng" );
var ref4 = new ActionReference();
var idPrpr = charIDToTypeID( "Prpr" );
var idfsel = charIDToTypeID( "fsel" );
ref4.putProperty( idPrpr, idfsel );
var idDcmn = charIDToTypeID( "Dcmn" );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref4.putEnumerated( idDcmn, idOrdn, idTrgt );
desc14.putReference( idUsng, ref4 );
var idNm = charIDToTypeID( "Nm " );
desc14.putString( idNm, """当前文档名称""" );
executeAction( idMk, desc14, DialogModes.NO );
//
//重设宽高
//记录宽高以调整宽高
//-.../-.--/-.-./..-./..../-.--
var sWidth=Number (edittext1.text); //宽;
var sHeight=Number (edittext2.text); //宽;
var fontsz=Number (edittext3.text); //宽;
//将图片裁切成指定宽高
app.activeDocument.crop([UnitValue("0px"),UnitValue("0px"),UnitValue(sWidth,"cm"),UnitValue(sHeight,"cm")]);
//填充当前文档图案
var idMk = charIDToTypeID( "Mk " );
var desc111 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref20 = new ActionReference();
var idcontentLayer = stringIDToTypeID( "contentLayer" );
ref20.putClass( idcontentLayer );
desc111.putReference( idnull, ref20 );
var idUsng = charIDToTypeID( "Usng" );
var desc112 = new ActionDescriptor();
var idType = charIDToTypeID( "Type" );
var desc113 = new ActionDescriptor();
var idPtrn = charIDToTypeID( "Ptrn" );
var desc114 = new ActionDescriptor();
var idNm = charIDToTypeID( "Nm " );
desc114.putString( idNm, """当前文档名称""" );
var idIdnt = charIDToTypeID( "Idnt" );
desc114.putString( idIdnt, """当前文档名称""" );
var idPtrn = charIDToTypeID( "Ptrn" );
desc113.putObject( idPtrn, idPtrn, desc114 );
var idpatternLayer = stringIDToTypeID( "patternLayer" );
desc112.putObject( idType, idpatternLayer, desc113 );
var idcontentLayer = stringIDToTypeID( "contentLayer" );
desc111.putObject( idUsng, idcontentLayer, desc112 );
executeAction( idMk, desc111, DialogModes.NO );
//记录字体大小并修改
//r textsz= Number(dialog.group5.statictext6.edittext3.text); //宽;
//新建图层
activeDocument.artLayers.add()
//将新建图层变成文本图层
activeDocument.activeLayer.kind=LayerKind.TEXT
//将文本内容改为当前文档name
activeDocument.activeLayer.textItem.contents=activeDocument.name
//字体大小
activeDocument.activeLayer.textItem.size= fontsz
//文字字体
activeDocument.activeLayer.textItem.font="微软雅黑"
//文字层边界
x=activeDocument.width-activeDocument.activeLayer.bounds[2]
//文字层边界
y=activeDocument.activeLayer.bounds[1]
//对齐
activeDocument.activeLayer.translate(x,-y)
//偏移
activeDocument.activeLayer.translate(UnitValue("-1cm"),UnitValue("+0.5cm"))
//电白
var myCopyLayer=activeDocument.activeLayer.duplicate (activeDocument.activeLayer,ElementPlacement.PLACEAFTER)
myCopyLayer.rasterize(RasterizeType.ENTIRELAYER)
//T填充颜色参数
var myColor=new SolidColor()
myColor.rgb.red=255
myColor.rgb.green=255
myColor.rgb.blue=255
activeDocument.activeLayer=myCopyLayer
fillType=myColor
mode=ColorBlendMode.NORMAL
oacity=100
preserveTransparency=true
activeDocument.selection.fill(fillType,mode,oacity,preserveTransparency)
//白边
activeDocument.activeLayer.applyMinimum(10)
document.flatten()
//保存输出
//r CSyFolder=File(button2.text)
saveIn=File("d:/输入/"+activeDocument.name);
tifSaveOpt = new TiffSaveOptions();
tifSaveOpt.imageCompression = TIFFEncoding.TIFFLZW;
tifSaveOpt.byteOrder = ByteOrder.IBM;
asCopy=true
app.activeDocument.saveAs(saveIn,tifSaveOpt,asCopy);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
}
dialog.show();