i m bloqued with error 1320 at line 41...
var topFolder = (Folder.selectDialog("Select the top level folder."))
var fileandfolderArray = scanSubFolders(topFolder,/\.(psd)$/i);
var fileList = fileandfolderArray[0];
for (var i = 0; i < fileList.length; i++) {
var myFile = fileList[i];
app.open(myFile);
// check whether layer of a certain name exists in photoshop;
// 2022, use it at your own risk;
if (app.documents.length > 0) {
var theLayer = checkForLayerName("<< Doubleclick to change etiquette");
var doc = app.activeDocument;
if (theLayer == true) {//alert ("layer of the name exists");
app.doAction("update pdf", "Actions par défaut");
while (app.documents.length > 0) {
var docName = fileList[i].name.replace(/\.[^\.]+$/, '');
var outputFolder = Folder(doc.path);
var newFile = new File(decodeURI(outputFolder) + "/" + docName + ".png");
app.runMenuItem(stringIDToTypeID("placedLayerUpdateAllModified"));
exportOptions = new ExportOptionsSaveForWeb();
exportOptions.format = SaveDocumentType.PNG;
exportOptions.PNG8 = false; // false = PNG-24
exportOptions.transparency = true; // true = transparent
exportOptions.interlaced = false; // true = interlacing on
exportOptions.includeProfile = true; // false = don't embedd ICC profile
doc.exportDocument(newFile, ExportType.SAVEFORWEB, exportOptions);
doc.close(SaveOptions.SAVECHANGES);
}
} else {
doc.close(SaveOptions.NO);
}
}
////// collect layers //////
function checkForLayerName (theString) {
// get number of layers;
var ref = new ActionReference();
ref.putProperty(stringIDToTypeID('property'), stringIDToTypeID('numberOfLayers'));
ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var applicationDesc = executeActionGet(ref);
var theNumber = applicationDesc.getInteger(stringIDToTypeID("numberOfLayers"));
// process the layers;
var theLayers = new Array;
for (var m = 0; m <= theNumber; m++) {
try {
var ref = new ActionReference();
ref.putIndex( charIDToTypeID( "Lyr " ), m);
var layerDesc = executeActionGet(ref);
var layerSet = typeIDToStringID(layerDesc.getEnumerationValue(stringIDToTypeID("layerSection")));
var isBackground = layerDesc.getBoolean(stringIDToTypeID("background"));
// if group collect values;
if (layerSet != "layerSectionEnd" /*&& layerSet != "layerSectionStart" && isBackground != true*/) {
var theName = layerDesc.getString(stringIDToTypeID('name'));
if (theName == theString) {return true};
var theID = layerDesc.getInteger(stringIDToTypeID('layerID'));
var theIndex = layerDesc.getInteger(stringIDToTypeID('itemIndex'));
theLayers.push([theName, theIndex, theID])
};
}
catch (e) {};
};
return false
};
}
alert("Done processing files!")
function scanSubFolders(tFolder, scanMask){
var subFolders = new Array();
var allFiles = new Array();
subFolders[0] = tFolder;
for (var j = 0; j < subFolders.length; j++){
var procFiles = subFolders[j].getFiles();
for (var i = 0; i< procFiles.length; i++){
if (procFiles[i] instanceof File ){
if(scanMask == undefined) allFiles.push(procFiles[i]);
if (procFiles[i].fullName.search(scanMask) != -1) allFiles.push(procFiles[i]);
}else if (procFiles[i] instanceof Folder){
subFolders.push(procFiles[i]);
scanSubFolders(procFiles[i], scanMask);
}
}
}
return [allFiles,subFolders];
};
i do that for resolve....
var topFolder = (Folder.selectDialog("Select the top level folder."))
var fileandfolderArray = scanSubFolders(topFolder,/\.(psd)$/i);
var fileList = fileandfolderArray[0];
for (var i = 0; i < fileList.length; i++) {
var myFile = fileList[i];
app.open(myFile);
// check whether layer of a certain name exists in photoshop;
if (app.documents.length > 0) {
var theLayer = checkForLayerName("<< Doubleclick to change etiquette");
if (theLayer == true) {//alert ("layer of the name exists");
app.doAction("update pdf", "Actions par défaut");
while (app.documents.length > 0) {
var docName = fileList[i].name.replace(/\.[^\.]+$/, '');
var doc = app.activeDocument;
var outputFolder = Folder(doc.path);
var newFile = new File(decodeURI(outputFolder) + "/" + docName + ".png");
app.runMenuItem(stringIDToTypeID("placedLayerUpdateAllModified"));
exportOptions = new ExportOptionsSaveForWeb();
exportOptions.format = SaveDocumentType.PNG;
exportOptions.PNG8 = false; // false = PNG-24
exportOptions.transparency = true; // true = transparent
exportOptions.interlaced = false; // true = interlacing on
exportOptions.includeProfile = true; // false = don't embedd ICC profile
doc.exportDocument(newFile, ExportType.SAVEFORWEB, exportOptions);
doc.close(SaveOptions.SAVECHANGES);
}
}
else {
app.doAction("close", "Actions par défaut");
}
}
}
alert("Done processing files!")
function scanSubFolders(tFolder, scanMask){
var subFolders = new Array();
var allFiles = new Array();
subFolders[0] = tFolder;
for (var j = 0; j < subFolders.length; j++){
var procFiles = subFolders[j].getFiles();
for (var i = 0; i< procFiles.length; i++){
if (procFiles[i] instanceof File ){
if(scanMask == undefined) allFiles.push(procFiles[i]);
if (procFiles[i].fullName.search(scanMask) != -1) allFiles.push(procFiles[i]);
}else if (procFiles[i] instanceof Folder){
subFolders.push(procFiles[i]);
scanSubFolders(procFiles[i], scanMask);
}
}
}
return [allFiles,subFolders];
};
////// collect layers //////
function checkForLayerName (theString) {
// get number of layers;
var ref = new ActionReference();
ref.putProperty(stringIDToTypeID('property'), stringIDToTypeID('numberOfLayers'));
ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var applicationDesc = executeActionGet(ref);
var theNumber = applicationDesc.getInteger(stringIDToTypeID("numberOfLayers"));
// process the layers;
var theLayers = new Array;
for (var m = 0; m <= theNumber; m++) {
try {
var ref = new ActionReference();
ref.putIndex( charIDToTypeID( "Lyr " ), m);
var layerDesc = executeActionGet(ref);
var layerSet = typeIDToStringID(layerDesc.getEnumerationValue(stringIDToTypeID("layerSection")));
var isBackground = layerDesc.getBoolean(stringIDToTypeID("background"));
// if group collect values;
if (layerSet != "layerSectionEnd" /*&& layerSet != "layerSectionStart" && isBackground != true*/) {
var theName = layerDesc.getString(stringIDToTypeID('name'));
if (theName == theString) {return true};
var theID = layerDesc.getInteger(stringIDToTypeID('layerID'));
var theIndex = layerDesc.getInteger(stringIDToTypeID('itemIndex'));
theLayers.push([theName, theIndex, theID])
};
}
catch (e) {};
};
return false
};