Я борюсь с проблемой, когда мне нужно получить JPG по всем письменным вопросам в InDesign, так как я работаю в школе. Чтобы ускорить процесс, я решил пойти по пути «Экспорт объектов». Но я не смог найти подходящий сценарий для достижения того, что мне нужно.
В основном
- Выбрать все текстовые рамки в данном макете (присутствуют альтернативы)
- Экспорт всех текстовых фреймов в формате JPG с заданным значением DPI и переменной name.
Оба действия на самом деле доступны с примерами кодов, но по-разному. Например: скрипт SelectObject работает, но в сочетании с Command + E результатом экспорта будет одно большое изображение, которое содержит все выбранные кадры. Я хочу их отдельно.
Я пытался объединить сценарии, представленные в виде appleScript или js, с моим небольшим знанием кодирования, но без сигары.
Выбрать текст: Indesign CC 2018 - Выбрать образец кода объекта.
Экспорт изображения: Indesign CC 2018 - коды, с которыми я пытался смешаться при экспорте в JPG.
Цель: экспортировать все текстовые фреймы по отдельности как переменную DPI, имя переменной и назначение переменной из отдельных альтернативных макетов.
Редактировать 1: Код, с которым я пытаюсь смешаться. Я нашел его на Reddit, но, хотя он, по сути, делает то, что мне нужно, он работает криво и бесполезно. Он экспортирует ВСЕ элементы, и они с фоном страницы, мне нужно только то, что содержится в TextFrame.
// Set resolution options
var rp = [72,150,300];
// Set EXPORT presets
app.pngExportPreferences.exportResolution = 72;
app.pngExportPreferences.antiAlias = true;
app.pngExportPreferences.pngQuality = PNGQualityEnum.MAXIMUM;
app.pngExportPreferences.pngColorSpace = PNGColorSpaceEnum.RGB;
app.pngExportPreferences.pngExportRange = PNGExportRangeEnum.EXPORT_RANGE;
// Resolution Select Dialog
var w;
w = new Window('dialog', 'Export Presets');
w.orientation = 'row';
with (w)
{
w.sText = add('statictext', undefined, 'Select Export Resolution:');
w.dropdown = add ( 'DropDownList',undefined,undefined,{items:rp});
w.btnOK = add('button', undefined, 'OK');
};
w.dropdown.selection=0;
w.show();
// Set resolution
var x = 0;
x = x + w.dropdown.selection;
app.pngExportPreferences.exportResolution = rp[x];
// SElECT Folder locations
var myFileAmount = 0;
var myFileLocation = Folder.selectDialog("Please select path of InDesign Files");
myFolder = new Folder ([myFileLocation]);
myFolderContents = myFolder.getFiles("*.indd"); // array
myFileAmount = (myFolderContents.length - 1);
// CHECK IF FILES IN FOLDER
if (myFileAmount < 0){alert("No Files in selected folder");}
else
{
var mySaveLocation = Folder.selectDialog("Please select path to Save PNG");
mySaveFolder = new Folder ([mySaveLocation]);
// OPEN FILES One at a time
for (i = myFileAmount; i >= 0; i--)
{
app.open(File (myFolderContents[i]));
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
// SET Active Document
var myDoc = app.activeDocument;
// EXPORT
//One Page at a time
for (var p=0; p < myDoc.pages.length; p++)
{//page loop
var pname = myDoc.pages.item(p).name;
//set all items in file hiden
for (var itemnum=0;itemnum < myDoc.pages.item(p).pageItems.length; itemnum++)
{
myDoc.pages.item(p).pageItems.item(itemnum).visible = false;
}
// set page to export
app.pngExportPreferences.pageString = pname;
//add a 0 in from on less than 10
if (p<9){var pnm=0;}else{var pnm=""}
//LOOP Through items Set Visibility, export a PNG, Set Visibility
for (var itemexport=0;itemexport < myDoc.pages.item(p).pageItems.length; itemexport++)
{
var itm = itemexport+1;//items start at 1 not 0
myDoc.pages.item(p).pageItems.item(itemexport).visible = true;
//ACTUALLY EXPORTING
app.activeDocument.exportFile(
ExportFormat.PNG_FORMAT,
File(mySaveFolder.fsName + "/" + app.activeDocument.name.split(".indd")[0] + "_"+ pnm + pname + "_" + itm +".png"),
false,
);
//SET VISIBILITY
myDoc.pages.item(p).pageItems.item(itemexport).visible = false;
}
}
app.activeDocument.close(SaveOptions.no);
}
}