InDesign Folder to JPG Folder Exporter - the Script ignores JPEG Prefrences!
Hi Experts,
I'm trying to build script that convert whole InDesign Folder Contains (*.indd) Files to Folder (*.jpg) Files, the Problem here that i cannot understand that it ignores JPEG Prefrences!, no Error , the files always Exported as RGB -300 ppi only and ignoring user entry of JPEG Prefrences, i tried hard to figure the problem but maybe i miss something, please help.
//InDesign Folder to JPG Folder Exporter
if(app.documents.length > 0){
// DIALOG -- UI
// ======
var dialog = new Window("dialog");
dialog.text = "Indesign Folder to JPG folder Exporter";
dialog.preferredSize.width = 300;
dialog.preferredSize.height = 300;
dialog.orientation = "column";
dialog.alignChildren = ["center","top"];
dialog.spacing = 10;
dialog.margins = 16;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.orientation = "row";
group1.alignChildren = ["left","center"];
group1.spacing = 10;
group1.margins = 0;
// PANEL1 - Export Settings
// ======
var panel1 = group1.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "Export Settings";
panel1.preferredSize.width = 300;
panel1.orientation = "column";
panel1.alignChildren = ["left","top"];
panel1.spacing = 10;
panel1.margins = 10;
// GROUP2 - Color Mode
// ======
var group2 = panel1.add("group", undefined, {name: "group2"});
group2.orientation = "row";
group2.alignChildren = ["left","center"];
group2.spacing = 10;
group2.margins = 0;
//Color Mode
//===========
var statictext1 = group2.add("statictext", undefined, undefined, {name: "statictext1"});
statictext1.text = "Color Mode : ";
statictext1.preferredSize.width = 100;
var dropdown1_array = ["RGB","CMYK","Gray"];
var dropdown1 = group2.add("dropdownlist", undefined, undefined, {name: "dropdown1", items: dropdown1_array});
dropdown1.selection = 0;
dropdown1.preferredSize.width = 150;
// GROUP3
// ======
var group3 = panel1.add("group", undefined, {name: "group3"});
//Export Quality
//===========
var statictext2 = group3.add("statictext", undefined, undefined, {name: "statictext2"});
statictext2.text = "Export Quality : ";
statictext2.preferredSize.width = 100;
var dropdown2_array = ["Low","Medium","High","Maximum"];
var dropdown2 = group3.add("dropdownlist", undefined, undefined, {name: "dropdown2", items: dropdown2_array});
dropdown2.selection = 3;
dropdown2.preferredSize.width = 150;
// GROUP4 - JPEG Encoding
// ======
var group4 = panel1.add("group", undefined, {name: "group4"});
group4.orientation = "row";
group4.alignChildren = ["left","center"];
group4.spacing = 10;
group4.margins = 0;
// JPEG Encoding
//=============
var statictext3 = group4.add("statictext", undefined, undefined, {name: "statictext3"});
statictext3.text = "JPEG Format : ";
statictext3.preferredSize.width = 100;
var dropdown3_array = ["Baseline Encoding","Progressive"];
var dropdown3 = group4.add("dropdownlist", undefined, undefined, {name: "dropdown3", items: dropdown3_array});
dropdown3.selection = 0;
dropdown3.preferredSize.width = 150;
// GROUP5 - Resolution
// ======
var group5 = panel1.add("group", undefined, {name: "group5"});
group5.orientation = "row";
group5.alignChildren = ["left","center"];
group5.spacing = 10;
group5.margins = 0;
var statictext4 = group5.add("statictext", undefined, undefined, {name: "statictext4"});
statictext4.text = "Resolution : ";
statictext4.preferredSize.width = 100;
var dropdown4_array = ["72","150","300","600"];
//var dropdown4_array = ["72","96","150","300","600","1200","2400"];
var dropdown4 = group5.add("dropdownlist", undefined, undefined, {name: "dropdown4", items: dropdown4_array});
dropdown4.selection = 3;
// GROUP6
// ======
var group6 = panel1.add("group", undefined, {name: "group6"});
group6.orientation = "row";
group6.alignChildren = ["left","center"];
group6.spacing = 10;
group6.margins = 0;
var divider2 = panel1.add("panel", undefined, undefined, {name: "divider2"});
divider2.alignment = "fill";
// GROUP7
// ======
var group7 = panel1.add("group", undefined, {name: "group7"});
group7.orientation = "column";
group7.alignChildren = ["left","top"];
group7.spacing = 10;
group7.margins = 0;
// ButtonsGroup
// ======
var myButtonGroup = dialog.add("group", undefined, {name: "group8"});
myButtonGroup.preferredSize.width = 300;
myButtonGroup.orientation = "row";
myButtonGroup.alignChildren = ["center","center"];
myButtonGroup.spacing = 10;
myButtonGroup.margins = 0;
//OK and Cancel
//Adding OK Button
var Button1 = myButtonGroup.add ("button", undefined, "OK");
var Button2 = myButtonGroup.add ("button", undefined, "Cancel");
var Button3 = myButtonGroup.add ("button", undefined, "About");
//What Happened if User Hit About Button - All the OnClick Callers Must Came Before Showing Dialogs
Button3.onClick = function() {alertAbout();};
function alertAbout() {
alert("InDesign Folder to JPG Folder Export Indd's folder to JPG's folder" , "About");
}
//After Drawing Interface
//Showing the Dialog - We Will Show as Varaible So We Can Correctly Use Cancel Button (w.Show() are One time in Code)
var a = dialog.show()
//What Happened if User Hit Cancel
if(a == 2){
alert("Canceled by User!");
exit(0);
}
//Drop Down Conditions
//JPEG Color Space
if(dropdown1.selection == "RGB"){
app.jpegExportPreferences.jpegColorSpace = JpegColorSpaceEnum.RGB;
}
else if(dropdown1.selection == "CMYK"){
app.jpegExportPreferences.jpegColorSpace = JpegColorSpaceEnum.CMYK;
}
else if(dropdown1.selection == "GRAY"){
app.jpegExportPreferences.jpegColorSpace = JpegColorSpaceEnum.GRAY;
}
//JPEG Quality
if(dropdown2.selection == "Low"){
app.jpegExportPreferences.jpegQuality =JPEGOptionsQuality.LOW;
}
else if(dropdown2.selection == "Medium"){
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.MEDIUM;
}
else if(dropdown2.selection == "High"){
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.HIGH;
}
else if(dropdown2.selection == "Maximum"){
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.MAXIMUM;
}
//JPEG Encoding
if(dropdown3.selection == "Baseline Encoding"){
app.jpegExportPreferences.jpegRenderingStyle = JPEGOptionsFormat.BASELINE_ENCODING;
}
else if(dropdown3.selection == "Progressive"){
app.jpegExportPreferences.jpegRenderingStyle = JPEGOptionsFormat.PROGRESSIVE_ENCODING;
}
//JPEG Resolution
if(dropdown4.selection == "72"){
app.jpegExportPreferences.exportResolution = 72;
}
else if(dropdown4.selection == "150"){
app.jpegExportPreferences.exportResolution = 150;
}
else if(dropdown4.selection == "300"){
app.jpegExportPreferences.exportResolution = 300;
}
else if(dropdown4.selection == "600"){
app.jpegExportPreferences.exportResolution = 600;
}
// Start the Program
var outputToJPG = function (doc, folder) {
//Apply JPEG Export
var exportFile = new File(folder.fsName + "/" + doc.name.slice(0, doc.name.lastIndexOf(".")) + ".jpg");
try {
doc.exportFile(ExportFormat.JPG, exportFile);
} catch (e) {
alert("Couldn't export " + exportFile.name + " for this reason: " + e);
}
};
//Select Indd Docs
var myFolder = Folder.selectDialog("Select a folder with INDD files to export");
if (myFolder == null) exit();
var myFilelist = [];
var myAllFilesList = myFolder.getFiles();
for (var f = 0; f < myAllFilesList.length; f++) {
var myFile = myAllFilesList[f];
if (myFile instanceof File && myFile.name.match(/\.indd$/i)) {
myFilelist.push(myFile);
}
}
if (myFilelist.length == 0) {
alert("No files to open.", "Export to JPG");
exit();
}
}
//User Selected JPG Export Folder
var folder = Folder.selectDialog("Please select a folder to save Exported JPG's to");
var currInteractPrefs = app.scriptPreferences.userInteractionLevel;
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
var docs = app.open(myFilelist, false);
for (var i = 0; i < docs.length; i++) {
for(var p = 0; p < app.documents[0].pages.length; p++) {
app.jpegExportPreferences.pageString = app.documents[0].pages[p].name;
outputToJPG(docs[i], folder);
}
}
app.scriptPreferences.userInteractionLevel = currInteractPrefs;
So Please help to fix the problem
Thanks in Advance
Best
M.Hasanain
