Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
5

Extend Suffix or create script?

Community Beginner ,
Oct 16, 2023 Oct 16, 2023

Hi,

 

I'm exporting a lot of grouped layers. I export the group/folder. Each has it's own name specific to a product type.

 

I select them and use export as. I want to add the designs name suffix to the export name, the problem is, the suffix is too short and doesn't allow me to have the correct number of characters I need. I have to edit all names in explorer after using a batch file name renamer to replace the suffix with a full word.

Is there a preferable way to export and include a longer suffix or include file name as suffix or something like that, or perhaps a script that will export and allow me to insert a longer suffix. 

TOPICS
Actions and scripting , Windows
336
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Community Expert ,
Oct 17, 2023 Oct 17, 2023
LATEST

@meatpopsicles 

 

Perhaps one of these might help?

 

https://github.com/Paul-Riggott/PS-Scripts/blob/master/Layer%20Saver%20Plus.jsx

 

https://github.com/Paul-Riggott/PS-Scripts/blob/master/Layer%20Saver.jsx

 

#target Photoshop  
app.bringToFront();  
  
  
main();  
function main(){  
if(!documents.length) return;  
Prefs ={};  
var UUID = 'f1742f10-a6de-11e2-9e96-0800200c9a66';  
try{  
var desc1 = app.getCustomOptions(UUID);  
Prefs = eval(desc1.getString(0));  
}catch(e){  
Prefs.Trim=false;  
Prefs.Merge=false;  
Prefs.OutFolder=app.activeDocument.path;  
Prefs.SaveOptions=0;  
Prefs.FileType=4;  
Prefs.TiffOptions =0;  
Prefs.Quality =79;  
Prefs.jpgQuality=7;  
}  
  
  
var selLayers = getSelectedLayersIdx();  
selectedLayers =new Array();  
selectedLayers = getNormalLayers(selLayers);  
var LayerSetLayers=[];  
var lSets = getLayerSets();  
for(var z in lSets){  
var lset = getChildIndex(Number(lSets[z]), true );  
LayerSetLayers[Number(lSets[z])] = lset;  
}  
var win = new Window( 'dialog', 'LayerSet Saver' );   
g = win.graphics;  
var myBrush = g.newBrush(g.BrushType.THEME_COLOR, "appDialogBackground");  
g.backgroundColor = myBrush;  
win.orientation='stack';  
win.p1= win.add("panel", undefined, undefined, {borderStyle:"black"});   
win.g1 = win.p1.add('group');  
win.g1.orientation = "row";  
win.title = win.g1.add('statictext',undefined,'LayerSet Saver');  
win.title.alignment="fill";  
var g = win.title.graphics;  
g.font = ScriptUI.newFont("Georgia","BOLDITALIC",22);  
win.g5 =win.p1.add('group');  
win.g5.orientation = "row";  
win.g5.alignment='fill';  
win.g5.spacing=10;  
win.g5.p1= win.g5.add("panel", undefined, 'Please Select LayerSets', {borderStyle:"black"});  
win.g5.p1.preferredSize=[250,200];  
win.g5.p1.lb1 = win.g5.p1.add('listbox', undefined, undefined, {multiselect: true} );  
win.g5.p1.lb1.preferredSize=[220,170];  
win.g5.p2= win.g5.add("panel", undefined, 'What to Do', {borderStyle:"black"});  
win.g5.p2.preferredSize=[250,200];  
for(var a in lSets){  
    win.g5.p1.lb1.add('item',(getLayerNameByIndex( Number(lSets[a]))));  
}  
win.g50 =win.g5.p2.add('group');  
win.g50.orientation = "column";  
win.g50.alignment='left';  
win.g50.alignChildren='left';  
win.g50.spacing=10;  
win.g50.rb1 = win.g50.add('radiobutton',undefined,'Save selected layers ('+selectedLayers.length + ')?');  
win.g50.rb2 = win.g50.add('radiobutton',undefined,'Save all layers in all LayerSets?');  
win.g50.rb3 = win.g50.add('radiobutton',undefined,'Save all layers in selected LayerSets?');  
win.g50.rb4 = win.g50.add('radiobutton',undefined,'Save selected LayerSets?');  
win.g50.rb5 = win.g50.add('radiobutton',undefined,'Save all LayerSets?');  
  
  
win.g50.rb1.value=true;  
win.g50.rb1.onClick=function(){  
    if(win.g50.rb1.value) {  
        win.g5.p1.lb1.enabled=false;  
        }else{  
            win.g5.p1.lb1.enabled=true;  
            }  
    }  
win.g50.rb1.onClick();  
win.g50.rb2.onClick=function(){  
    win.g50.rb1.onClick();  
    }  
win.g50.rb3.onClick=function(){  
    win.g50.rb1.onClick();  
    }  
win.g50.rb4.onClick=function(){  
    win.g50.rb1.onClick();  
    }  
win.g50.rb5.onClick=function(){  
    win.g50.rb1.onClick();  
    }  
var lSetsSelected=new Array();  
for(var f in lSets){  
    for(var t in selLayers){  
        if(Number(lSets[f]) == Number(selLayers[t])){  
            lSetsSelected.push(f);  
            }  
        }  
    }  
if(lSetsSelected.length > 0){  
    win.g5.p1.lb1.selection = lSetsSelected;  
    win.g50.rb4.value=true;  
    win.g50.rb1.onClick();  
    }  
win.g100 =win.p1.add('group');  
win.g100.alignment='row';  
win.g100.spacing=10;  
win.g100.p1 = win.g100.add("panel", undefined,'Output Options', {borderStyle:"black"});  
win.g100.p1.preferredSize=[520,40];  
win.g100a =win.g100.p1.add('group');  
win.g100a.alignment='fill';  
win.g100a.spacing=10;  
win.g100a.et1 = win.g100a.add('edittext');  
win.g100a.et1.preferredSize=[390,20];  
win.g100a.et1.enabled=false;  
//win.g100a.bu1 = win.g100a.add( 'image', undefined, 'SourceFolderIcon' );  
win.g100a.bu1 = win.g100a.add( 'button', undefined, 'Browse' );  
win.g100a.bu1.onClick=function(){  
try{  
    docPath = Prefs.OutFolder;  
    }catch(e){docPath= Folder("~");}  
outputFolder = Folder.selectDialog("Please select the output folder",docPath);  
if(outputFolder !=null){  
        Prefs.OutFolder=outputFolder;  
win.g100a.et1.text =  decodeURI(outputFolder.fsName);   
}  
}  
if(Folder(Prefs.OutFolder).exists){  
    outputFolder=Folder(Prefs.OutFolder);  
    win.g100a.et1.text =  decodeURI(outputFolder.fsName);   
    }  
win.g100b =win.g100.p1.add('group');  
win.g100b.alignment='fill';  
win.g100b.spacing=10;  
win.g100b.cb1 = win.g100b.add('checkbox',undefined,'Merge visible Layers?');  
win.g100b.cb2 = win.g100b.add('checkbox',undefined,'Trim Layer(s)?');  
win.g100b.cb2.value = Prefs.Trim;  
win.g100b.cb1.value = Prefs.Merge;  
win.g120 =win.g100.p1.add('group');  
win.g120.orientation = "row";  
win.g120.alignment='left';  
var Options= ["Layer Name","FileName + Sequence No.","FileName + Layer Name ","User Defined with Sequence No."];  
win.g120.st1 = win.g120.add('statictext',undefined,'Save Options');  
win.g120.dd1 = win.g120.add('dropdownlist',undefined,Options);  
win.g120.dd1.selection=Number(Prefs.SaveOptions);  
win.g120.et1 = win.g120.add('edittext');  
win.g120.et1.preferredSize=[150,20];  
win.g120.et1.hide();  
win.g120.dd1.onChange=function(){  
  if(this.selection.index==3){  
      win.g120.et1.show();  
      }else{  
          win.g120.et1.hide();  
          }  
    }  
win.g125 =win.g100.p1.add('group');  
win.g125.orientation = "row";  
win.g125.st1 = win.g125.add('statictext',undefined,'Save as :');  
var Types = ["PNG","PSD","PDF","TIF","JPG","JPG SFW"];  
win.g125.dd1 = win.g125.add('dropdownlist',undefined,Types);  
win.g125.dd1.selection = Number(Prefs.FileType);  
win.g125.alignment='left';  
  
  
win.g130 =win.g125.add('group');  
win.g130.orientation = "stack";  
  
  
win.g130b =win.g130.add('group');  
win.g130b.st1 = win.g130b.add('statictext',undefined,'Quality');  
win.g130b.dd1 = win.g130b.add('dropdownlist');  
for(var a =1;a<13;a++){  
    win.g130b.dd1.add('item',a);  
    }  
win.g130b.dd1.selection = Number(Prefs.jpgQuality);  
win.g130b.visible=false;  
  
  
win.g130c =win.g130.add('group');  
win.g130c.st1 = win.g130c.add('statictext',undefined,'Compression');  
var tiffOptions=["LZW","ZIP","JPG","None"];  
win.g130c.dd1 = win.g130c.add('dropdownlist',undefined,tiffOptions);  
win.g130c.dd1.selection = Prefs.TiffOptions;  
win.g130c.visible=false;  
  
  
win.g130d =win.g130.add('group');  
win.g130d.st1 = win.g130d.add('statictext',undefined,'Quality');  
win.g130d.dd1 = win.g130d.add('dropdownlist');  
for(var a =1;a<101;a++){  
    win.g130d.dd1.add('item',a);  
    }  
win.g130d.dd1.selection=Prefs.Quality;  
win.g130d.visible=false;  
win.g125.dd1.onChange=function(){  
    switch(Number(this.selection.index)){  
        case 0 : win.g130b.visible=false; win.g130c.visible=false; win.g130d.visible=false; break;  
        case 1 : win.g130b.visible=false; win.g130c.visible=false; win.g130d.visible=false; break;  
        case 2 : win.g130b.visible=false; win.g130c.visible=false; win.g130d.visible=false; break;  
        case 3 : win.g130b.visible=false; win.g130c.visible=true; win.g130d.visible=false; break;  
        case 4 : win.g130b.visible=true; win.g130c.visible=false; win.g130d.visible=false; break;  
        case 5 : win.g130b.visible=false; win.g130c.visible=false; win.g130d.visible=true; break;  
        default :break;  
        }  
}  
win.g125.dd1.onChange();  
win.g1000 =win.p1.add('group');  
win.g1000.alignment='row';  
win.g1000.spacing=10;  
win.g1000.p1 = win.g1000.add("panel", undefined, undefined, {borderStyle:"black"});  
win.g1000.p1.preferredSize=[520,40];  
win.g1000.p1.orientation = "row";  
win.g1000.p1.alignment='fill';  
win.g1000.p1.bu1 = win.g1000.p1.add('button',undefined,'Process');  
win.g1000.p1.bu1.preferredSize=[235,30];  
win.g1000.p1.bu2 = win.g1000.p1.add('button',undefined,'Cancel');  
win.g1000.p1.bu2.preferredSize=[235,30];  
function SaveDOC(saveFile){  
    switch(Number(win.g125.dd1.selection.index)){  
        case 0 : SavePNG(File(saveFile+".png")); break;  
        case 1:  SavePSD(File(saveFile+".psd")); break;  
        case 2:  SavePDF(File(saveFile+".pdf")); break;  
        case 3:  SaveTIFF(File(saveFile+".tif"),Number(win.g130c.dd1.selection.index)); break;  
        case 4:  SaveJPG(File(saveFile+".jpg"),Number(win.g130b.dd1.selection.index)+1); break;  
        case 5:  SaveForWeb(File(saveFile+".jpg"),Number(win.g130d.dd1.selection.index)+1)  break;  
        default : break;  
        }  
};  
function getName(seq,lName){  
lName = lName.replace(/\....$/,'');  
seq = zeroPad((Number(seq)+1), 3);  
 var dName = decodeURI(activeDocument.name).replace(/\.[^\.]+$/, '');  
var Name ='';  
switch (Number(win.g120.dd1.selection.index)){  
    case 0: Name += lName; break;  
    case 1: Name += dName +"-"+seq; break;  
    case 2: Name += dName +"-"+ lName; break;  
    case 3: Name += win.g120.et1.text + "-"+seq; break;  
    default :break;  
    }  
return Name;  
}  
     
win.g1000.p1.bu1.onClick=function(){  
if(win.g100a.et1.text == ''){  
    alert("No output folder has been selected!");  
    return;  
        }  
if(!outputFolder.exists){  
    alert("Output folder does not exist!");  
    return;  
    }  
Prefs.Merge = win.g100b.cb1.value;  
Prefs.Trim = win.g100b.cb2.value;  
Prefs.SaveOptions=win.g120.dd1.selection.index;  
Prefs.FileType = win.g125.dd1.selection.index;  
Prefs.TiffOptions = win.g130c.dd1.selection.index;  
Prefs.Quality = win.g130d.dd1.selection.index;  
Prefs.jpgQuality=win.g130b.dd1.selection.index;  
var desc2 = new ActionDescriptor();  
desc2.putString(0, Prefs.toSource());   
app.putCustomOptions(UUID, desc2, true );  
win.close(0);  
if(win.g50.rb1.value){//Save selected layers  
for(var a in selectedLayers){  
var lName = getLayerNameByIndex( Number(selectedLayers[a])).toString().replace(/[:\/\\*\?\"\<\>\|]/g, "_");  
var saveFile= File(outputFolder+ "/" + getName(a,lName));  
selectLayerByIndex(Number(selectedLayers[a]));  
dupLayers();  
if(win.g100b.value)  try{activeDocument.mergeVisibleLayers();}catch(e){}  
if(win.g100b.cb2.value){  
try{   
activeDocument.backgroundLayer;   
var back = true;  
}catch(e){var back =false;}  
    if(!back){  
        try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}  
        }else{  
            try{activeDocument.trim(TrimType.TOPLEFT,true,true,true,true);}catch(e){}  
            }  
    }  
SaveDOC(saveFile);  
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);  
    }//end selected layers  
    };  
if(win.g50.rb2.value){//Save all layers in all LayerSets  
var count =0;  
for(var a in lSets){  
    var layerToProcess = LayerSetLayers[Number(lSets[a])];  
    var selectedLay = getNormalLayers(layerToProcess);  
for(var b in selectedLay){  
var lName = getLayerNameByIndex( Number(selectedLay[b])).toString().replace(/[:\/\\*\?\"\<\>\|]/g, "_");  
var saveFile= File(outputFolder+ "/" + getName(count,lName));  
selectLayerByIndex(Number(selectedLay[b]));  
dupLayers();  
if(win.g100b.value)  try{activeDocument.mergeVisibleLayers();}catch(e){}  
if(win.g100b.cb2.value){  
try{   
activeDocument.backgroundLayer;   
var back = true;  
}catch(e){var back =false;}  
    if(!back){  
        try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}  
        }else{  
            try{activeDocument.trim(TrimType.TOPLEFT,true,true,true,true);}catch(e){}  
            }  
    }  
SaveDOC(saveFile);  
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);  
count++;  
    }//end selectedlay  
    }  
    };//end Save all layers in all LayerSets  
if(win.g50.rb3.value){//Save all layers in selected LayerSets  
var lSets2 = new Array();  
var selGroups = win.g5.p1.lb1.selection;  
for(var g in  selGroups){ lSets2.push(Number(lSets[Number(selGroups[g])]));}  
var count =0;  
for(var a in lSets2){  
    var layerToProcess = LayerSetLayers[Number(lSets2[a])];  
    var selectedLay = getNormalLayers(layerToProcess);  
for(var b in selectedLay){  
var lName = getLayerNameByIndex( Number(selectedLay[b])).toString().replace(/[:\/\\*\?\"\<\>\|]/g, "_");  
var saveFile= File(outputFolder+ "/" + getName(count,lName));  
selectLayerByIndex(Number(selectedLay[b]));  
dupLayers();  
if(win.g100b.value)  try{activeDocument.mergeVisibleLayers();}catch(e){}  
if(win.g100b.cb2.value){  
try{   
activeDocument.backgroundLayer;   
var back = true;  
}catch(e){var back =false;}  
    if(!back){  
        try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}  
        }else{  
            try{activeDocument.trim(TrimType.TOPLEFT,true,true,true,true);}catch(e){}  
            }  
    }  
SaveDOC(saveFile);  
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);  
count++;  
    }//end selectedlay  
    }  
    };//end Save all layers in selected LayerSets  
if(win.g50.rb4.value){//Save selected LayerSets  
var lSets2 = new Array();  
var selGroups = win.g5.p1.lb1.selection;  
for(var g in  selGroups){ lSets2.push(Number(lSets[Number(selGroups[g].index)]));}  
var count =0;  
for(var a in lSets2){  
var lName = getLayerNameByIndex( Number(lSets2[a])).toString().replace(/[:\/\\*\?\"\<\>\|]/g, "_");  
var saveFile= File(outputFolder+ "/" + getName(count,lName));  
selectLayerByIndex(Number(lSets2[a]));  
dupLayers();  
if(win.g100b.value)  try{activeDocument.mergeVisibleLayers();}catch(e){}  
if(win.g100b.cb2.value){  
try{   
activeDocument.backgroundLayer;   
var back = true;  
}catch(e){var back =false;}  
    if(!back){  
        try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}  
        }else{  
            try{activeDocument.trim(TrimType.TOPLEFT,true,true,true,true);}catch(e){}  
            }  
    }  
SaveDOC(saveFile);  
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);  
count++;  
    }//end lSets2  
    };//end Save  selected LayerSets  
if(win.g50.rb5.value){//Save all LayerSets  
var count =0;  
for(var a in lSets){  
var lName = getLayerNameByIndex( Number(lSets[a])).toString().replace(/[:\/\\*\?\"\<\>\|]/g, "_");  
var saveFile= File(outputFolder+ "/" + getName(count,lName));  
selectLayerByIndex(Number(lSets[a]));  
dupLayers();  
if(win.g100b.value)  try{activeDocument.mergeVisibleLayers();}catch(e){}  
if(win.g100b.cb2.value){  
try{   
activeDocument.backgroundLayer;   
var back = true;  
}catch(e){var back =false;}  
    if(!back){  
        try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}  
        }else{  
            try{activeDocument.trim(TrimType.TOPLEFT,true,true,true,true);}catch(e){}  
            }  
    }  
SaveDOC(saveFile);  
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);  
count++;  
    }//end lSets  
    };//end Save all LayerSets  
};  
win.show();  
};  
//Functions  
function isLayerSet(idx){  
var ref = new ActionReference();   
ref.putProperty( charIDToTypeID("Prpr") , stringIDToTypeID( 'layerSection' ));   
ref.putIndex( charIDToTypeID( "Lyr " ), idx);  
var desc = executeActionGet(ref);  
var isSet = typeIDToStringID(desc.getEnumerationValue(stringIDToTypeID('layerSection')));  
var LayerSet=false;  
switch (isSet.toString()){  
    case 'layerSectionStart' : LayerSet=true; break;  
    case 'layerSectionEnd' : LayerSet=true; break;  
    case 'layerSectionConent' : LayerSet=false; break;  
    }  
return LayerSet;  
};  
function selectLayerByIndex(index,add,vis){   
add = (add == undefined)  ? add = false : add;  
    if (vis == undefined) vis = false;  
 var ref = new ActionReference();  
    ref.putIndex(charIDToTypeID("Lyr "), index);  
    var desc = new ActionDescriptor();  
    desc.putReference(charIDToTypeID("null"), ref );  
      if(add) desc.putEnumerated( stringIDToTypeID( "selectionModifier" ), stringIDToTypeID( "selectionModifierType" ), stringIDToTypeID( "addToSelection" ) );   
      desc.putBoolean( charIDToTypeID( "MkVs" ), vis );   
  try{  
    executeAction(charIDToTypeID("slct"), desc, DialogModes.NO );  
}catch(e){}  
};  
function noOfLayers(){  
   var ref = new ActionReference();   
   ref.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );   
   return executeActionGet(ref).getInteger(charIDToTypeID('NmbL'));  
}  
function getLayerSets(){   
   var ref = new ActionReference();   
   ref.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );   
   var count = executeActionGet(ref).getInteger(charIDToTypeID('NmbL')) +1;   
   var Lsets=[];  
try{  
    activeDocument.backgroundLayer;  
var i = 0; }catch(e){ var i = 1; };  
   for(i;i<count;i++){   
       if(i == 0) continue;  
        ref = new ActionReference();   
        ref.putIndex( charIDToTypeID( 'Lyr ' ), i );  
        var desc = executeActionGet(ref);  
        var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));  
        if(layerName.match(/^<\/Layer group/) ) continue;  
        var layerType = typeIDToStringID(desc.getEnumerationValue( stringIDToTypeID( 'layerSection' )));  
        var isLayerSet =( layerType == 'layerSectionContent') ? false:true;  
        if(isLayerSet) Lsets.push(i);  
   };   
return Lsets;  
};  
function getLayerLayerSectionByIndex( index ) {     
   var ref = new ActionReference();   
   ref.putIndex(charIDToTypeID('Lyr '), index);  
   return typeIDToStringID(executeActionGet(ref).getEnumerationValue(stringIDToTypeID('layerSection')));  
};   
function getLayerNameByIndex( index ) {   
    var ref = new ActionReference();   
    ref.putIndex( charIDToTypeID( 'Lyr ' ), index );  
    return executeActionGet(ref).getString(charIDToTypeID( 'Nm  ' ));  
};  
function skipNestedSets( layerIndex ){  
   var isEnd = false;  
   layerIndex = app.activeDocument.layers[app.activeDocument.layers.length-1].isBackgroundLayer ? layerIndex-2:layerIndex;  
   while(!isEnd){  
      layerIndex--;  
      if( getLayerLayerSectionByIndex( layerIndex ) == 'layerSectionStart' ) layerIndex = skipNestedSets( layerIndex );  
      isEnd = getLayerNameByIndex(layerIndex) == '</Layer group>' ? true:false;  
   }  
   return layerIndex-1;  
};  
function getChildIndex(idx, skipNested ){  
   var layerSetIndex = idx;  
   var isEndOfSet = false;  
   var layerIndexArray = [];  
   while(!isEndOfSet){  
      layerSetIndex--;  
      if( getLayerLayerSectionByIndex( layerSetIndex ) == 'layerSectionStart' && skipNested ){  
         layerSetIndex = skipNestedSets( layerSetIndex );  
      }  
  if(getLayerLayerSectionByIndex( layerSetIndex ) == undefined) break;  
      isEndOfSet = getLayerNameByIndex(layerSetIndex) == '</Layer group>' ? true:false;  
     if(!isEndOfSet ) layerIndexArray.push( layerSetIndex );  
   }  
   return layerIndexArray;  
};  
function selectLayerByIndex(index,add){   
add = (add == undefined)  ? add = false : add;  
 var ref = new ActionReference();  
    ref.putIndex(charIDToTypeID('Lyr '), index);  
    var desc = new ActionDescriptor();  
    desc.putReference(charIDToTypeID('null'), ref );  
      if(add) desc.putEnumerated( stringIDToTypeID( 'selectionModifier' ), stringIDToTypeID( 'selectionModifierType' ), stringIDToTypeID( 'addToSelection' ) );   
      desc.putBoolean( charIDToTypeID( 'MkVs' ), false );   
  try{  
    executeAction(charIDToTypeID('slct'), desc, DialogModes.NO );  
}catch(e){}  
};  
function getIDXs(){   
   var ref = new ActionReference();   
   ref.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );   
   var count = executeActionGet(ref).getInteger(charIDToTypeID('NmbL')) +1;   
   var IDX=[];  
try{  
    activeDocument.backgroundLayer;  
var i = 0; }catch(e){ var i = 1; };  
   for(i;i<count;i++){   
       if(i == 0) continue;  
        ref = new ActionReference();   
        ref.putIndex( charIDToTypeID( 'Lyr ' ), i );  
        var desc = executeActionGet(ref);  
        var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));  
        var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));  
        if(layerName.match(/^<\/Layer group/) ) continue;  
        var layerType = typeIDToStringID(desc.getEnumerationValue( stringIDToTypeID( 'layerSection' )));  
        var isLayerSet =( layerType == 'layerSectionContent') ? false:true;  
        if(!isLayerSet) IDX.push(i);  
   };   
return IDX;  
};  
function getSelectedLayersIdx(){   
      var selectedLayers = new Array;   
      var ref = new ActionReference();   
      ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );   
      var desc = executeActionGet(ref);   
      if( desc.hasKey( stringIDToTypeID( 'targetLayers' ) ) ){   
         desc = desc.getList( stringIDToTypeID( 'targetLayers' ));   
          var c = desc.count   
          var selectedLayers = new Array();   
          for(var i=0;i<c;i++){   
            try{   
               activeDocument.backgroundLayer;   
               selectedLayers.push(  desc.getReference( i ).getIndex() );   
            }catch(e){   
               selectedLayers.push(  desc.getReference( i ).getIndex()+1 );   
            }   
          }   
       }else{   
         var ref = new ActionReference();   
         ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "ItmI" ));   
         ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );   
         try{   
            activeDocument.backgroundLayer;   
            selectedLayers.push( executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" ))-1);   
         }catch(e){   
            selectedLayers.push( executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" )));   
         }   
     var vis = app.activeDocument.activeLayer.visible;  
        if(vis == true) app.activeDocument.activeLayer.visible = false;  
        var desc9 = new ActionDescriptor();  
    var list9 = new ActionList();  
    var ref9 = new ActionReference();  
    ref9.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );  
    list9.putReference( ref9 );  
    desc9.putList( charIDToTypeID('null'), list9 );  
    executeAction( charIDToTypeID('Shw '), desc9, DialogModes.NO );  
    if(app.activeDocument.activeLayer.visible == false) selectedLayers.shift();  
        app.activeDocument.activeLayer.visible = vis;  
      }   
      return selectedLayers;   
};  
function dupLayers() {  
var desc = new ActionDescriptor();  
var ref = new ActionReference();  
ref.putClass( charIDToTypeID('Dcmn') );  
desc.putReference( charIDToTypeID('null'), ref );  
desc.putString( charIDToTypeID('Nm  '), "Dup" );  
var ref2 = new ActionReference();  
ref2.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );  
desc.putReference( charIDToTypeID('Usng'), ref2 );  
executeAction( charIDToTypeID('Mk  '), desc, DialogModes.NO );  
};  
function getLayerKindByIndex( index ) {  
    var ref, desc, adjustmentDesc, layerSectionType;  
   ref = new ActionReference();  
   ref.putIndex(charIDToTypeID( "Lyr " ), index );  
   desc =  executeActionGet(ref);  
   if( desc.hasKey( stringIDToTypeID( 'textKey' ) ) ) return LayerKind.TEXT;  
   if( desc.hasKey( stringIDToTypeID( 'smartObject' ) ) ) return LayerKind.SMARTOBJECT;// includes LayerKind.VIDEO  
   if( desc.hasKey( stringIDToTypeID( 'layer3D' ) ) ) return LayerKind.LAYER3D;  
   if( desc.hasKey( stringIDToTypeID( 'adjustment' ) ) ){  
      switch(typeIDToStringID(desc.getList (stringIDToTypeID('adjustment')).getClass (0))){  
      case 'photoFilter' : return LayerKind.PHOTOFILTER;  
      case 'solidColorLayer' : return LayerKind.SOLIDFILL;  
      case 'gradientMapClass' : return LayerKind.GRADIENTMAP;  
      case 'gradientMapLayer' : return LayerKind.GRADIENTFILL;  
      case 'hueSaturation' : return LayerKind.HUESATURATION;  
      case 'colorLookup' : return undefined; //this does not exist and errors with getting layer kind  
      case 'colorBalance' : return LayerKind.COLORBALANCE;  
      case 'patternLayer' : return LayerKind.PATTERNFILL;  
      case 'invert' : return LayerKind.INVERSION;  
      case 'posterization' : return LayerKind.POSTERIZE;  
      case 'thresholdClassEvent' : return LayerKind.THRESHOLD;  
      case 'blackAndWhite' : return LayerKind.BLACKANDWHITE;  
      case 'selectiveColor' : return LayerKind.SELECTIVECOLOR;  
      case 'vibrance' : return LayerKind.VIBRANCE;  
      case 'brightnessEvent' : return LayerKind.BRIGHTNESSCONTRAST;  
      case  'channelMixer' : return LayerKind.CHANNELMIXER;  
      case 'curves' : return LayerKind.CURVES;  
      case 'exposure' : return LayerKind.EXPOSURE;  
      // if not one of the above adjustments return - adjustment layer type  
      default : return typeIDToStringID(desc.getList (stringIDToTypeID('adjustment')).getClass (0));  
      }  
   }  
var layerType = typeIDToStringID(desc.getEnumerationValue( stringIDToTypeID( 'layerSection' )));  
return ( layerType == 'layerSectionContent') ? LayerKind.NORMAL:undefined;  
};  
function getNormalLayers(array){  
var selectedLayers = new Array();  
for(var t in array){    
   switch(getLayerKindByIndex( Number(array[t])) ){  
       case LayerKind.NORMAL :   
       case  LayerKind.SMARTOBJECT :  
       case LayerKind.SOLIDFILL :  
       case LayerKind.TEXT : selectedLayers.push(Number(array[t])); break;  
       default : break;  
       }  
    }  
return selectedLayers;  
}  
function zeroPad(n, s) {   
   n = n.toString();   
   while (n.length < s)  n = '0' + n;   
   return n;   
};  
function SavePNG(saveFile){  
    pngSaveOptions = new PNGSaveOptions();   
activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE);   
};  
function SaveTIFF(saveFile,Comp){  
tiffSaveOptions = new TiffSaveOptions();   
tiffSaveOptions.embedColorProfile = true;   
tiffSaveOptions.transparency = true;   
tiffSaveOptions.alphaChannels = true;   
tiffSaveOptions.layers = true;  
switch (Number(Comp)){  
    case 0 : tiffSaveOptions.imageCompression = TIFFEncoding.TIFFLZW; break;  
    case 1 : tiffSaveOptions.imageCompression = TIFFEncoding.TIFFZIP; break;  
    case 2 : tiffSaveOptions.imageCompression = TIFFEncoding.JPEG; break;  
    case 3 : tiffSaveOptions.imageCompression = TIFFEncoding.NONE; break;  
    default : break;  
}  
activeDocument.saveAs(saveFile, tiffSaveOptions, true, Extension.LOWERCASE);   
};  
function SavePSD(saveFile){   
psdSaveOptions = new PhotoshopSaveOptions();   
psdSaveOptions.embedColorProfile = true;   
psdSaveOptions.alphaChannels = true;    
psdSaveOptions.layers = true;    
activeDocument.saveAs(saveFile, psdSaveOptions, true, Extension.LOWERCASE);   
};  
function SavePDF(saveFile){   
pdfSaveOptions = new PDFSaveOptions();   
activeDocument.saveAs(saveFile, pdfSaveOptions, true, Extension.LOWERCASE);   
};  
function SaveJPG(saveFile, jpegQuality){  
    try{  
jpgSaveOptions = new JPEGSaveOptions();  
jpgSaveOptions.embedColorProfile = true;  
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;  
jpgSaveOptions.matte = MatteType.NONE;  
jpgSaveOptions.quality = jpegQuality;  
activeDocument.saveAs(saveFile, jpgSaveOptions, true,Extension.LOWERCASE);  
}catch(e){$.writeln(e+" - "+e.line);}  
};  
function SaveForWeb(saveFile,jpegQuality) {  
var tmpFile=File(saveFile.path +"/tmpName.jpg");  
var sfwOptions = new ExportOptionsSaveForWeb();   
   sfwOptions.format = SaveDocumentType.JPEG;   
   sfwOptions.includeProfile = false;   
   sfwOptions.interlaced = 0;   
   sfwOptions.optimized = true;   
   sfwOptions.quality = Number(jpegQuality);   
activeDocument.exportDocument(tmpFile, ExportType.SAVEFORWEB, sfwOptions);  
tmpFile.rename(decodeURI(saveFile.name));  
}; 

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines