/*=====================================================================================
О П И С А Н И Е
=======================================================================================
Cкрипт экспортирует в JPEG максимального качества с заданными минимальными размерами сторон.
-------------------------------------------------------------------------------------
© polygraphus, 2008
polygraphus [ж у ч к а] gmail.com
=====================================================================================
Н А С Т Р О Й К А (здесь можно изменить настройки работы скрипта)
=====================================================================================*/
// Задаем минимальные размеры сторон (pixels)
var big = 5000; // минимальный требуемый размер большей стороны
var small = 2000; // минимальный требуемый размер меньшей стороны
/*=====================================================================================
С К Р И П Т (неизменяемая часть скрипта, вернее изменять можно, но со знанием дела)
=====================================================================================*/
if ( app.documents.length > 0 ) { // если есть открытые документы
var myDoc = app.activeDocument; // текущий докумет
var w = myDoc.width;
var h = myDoc.height;
var smallSide = Math.min(w, h); // меньшая сторона документа
var bigSide = Math.max(w, h); // бОльшая сторона документа
var scale; // требуемый масштаб экспорта в Jpg
if(small/smallSide >= big/bigSide){
scale = 100*small/smallSide;
} else {
scale = 100*big/bigSide;
}
if(scale > 776.19) { // это ограничение заложено в скриптовой модели Adobe Illustrator
alert('JPEG не сохранен!!!\n\nДля сохранения JPEG с заданными минимальными размерами\nнеобходимо чтобы размеры изображения были не меньше\n' + (Math.floor((25.4*w/72)*(scale/776.19))+1)+' x '+Math.floor((25.4*h/72)*(scale/776.19)+1)+' мм.');
} else {
var fname_str = this.getTargetFile(myDoc.name, Folder.decode (myDoc.path)); // полное имя для сохранения как EPS
var newJpgFile = new File(fname_str+'.jpg'); // создаем новый файл
var saveJpgOpts = getJpgOptions(scale); // параметры сохранения как Jpg
myDoc.exportFile( newJpgFile, ExportType.JPEG, saveJpgOpts ); // сохраняем Jpg
}
}
//================================================================
function getJpgOptions(scale) {
// ф-я устанавливает параметры сохранения Jpg
//================================================================
//scale = 100;
var saveOpts = new ExportOptionsJPEG();
saveOpts.antiAliasing = true;
saveOpts.artBoardClipping = true;
saveOpts.qualitySetting = 100; // качество от 0 (наихудшее) до 100 (максимальное)
saveOpts.horizontalScale = scale;
saveOpts.verticalScale = scale;
return saveOpts;
}
//================================================================
function getTargetFile(docName, destFolder) {
// ф-я формирует строку полного имени файла (без расширения) из следующих входных параметров:
// docName -- имени (возможно с расширением);
// destFolder -- пути.
//================================================================
var newName = ""; // создаем переменную в которой будет формироваться полное выходное имя
if (docName.indexOf('.') < 0) { // если входное имя не имеет символа '.' (точка)
newName = docName; // то к выходному имени добавляем расширение
} else { // если входное имя имеет символ '.' (точка)
var dot = docName.lastIndexOf('.'); // то определяем позицию этого символа
newName += docName.substring(0, dot); // затем выходному имени приравниваем входное откинув точку и все следующие символы
}
var myFile = destFolder + '/' + newName; // формируем полное выходное имя
return myFile; // возвращаем сформированное полное имя
}