﻿

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();

