Greetings to you! Help me fix the error in the script. He should create captions to photos, apply the paragraph style selected in the dialog box and indent from the photo. The error most likely lies in reading the selected paragraph style from the drop-down list, because everything works correctly without this part of the code.
Here is the code itself (there are a lot of words in Russian, do not be afraid):
function main() {
// Проверяем, открыт ли документ InDesign
if (app.documents.length > 0) {
var myDialog = app.dialogs.add({name:"Настройка отступа", canCancel:true});
var document = app.activeDocument;
var currentPage = app.activeWindow.activePage;
var paragraphStyles = document.paragraphStyles.everyItem().name;
with(myDialog){
// Создаем колонку таблицы (контейнер для всех элементов)
with(dialogColumns.add()){
// Создаем колонку для выбора стиля абзаца
with(borderPanels.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel: "Стиль абзаца:"});
}
with(dialogColumns.add()){
var selectedStyle = dropdowns.add({stringList: app.activeDocument.paragraphStyleGroups.item(0).paragraphStyles.everyItem().name, selectedIndex: 0});
}}
with(dialogColumns.add()){
// Создаем поле для значения отступа и указываем значение по умолчанию
with(borderPanels.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Отступ:"})};
with(dialogColumns.add()){
var offsetN = realEditboxes.add({editValue:20});
}}
}}
// Выводим диалог с кнопками ОК и Cancel на экран
var myDisplay = myDialog.show();
if(myDisplay){
var paragraphStyle = document.paragraphStyleGroups.item(0).paragraphStyles.itemByName(selectedStyle);
var offset;
offset = offsetN.editValue;
var myDocument = app.activeDocument;
var myPage = myDocument.layoutWindows[0].activePage;
// Получаем все графические элементы на странице
var allGraphics = myPage.allGraphics;
var x = 4.5
// Перебираем все графические элементы
for (var i = 0; i < allGraphics.length; i++) {
var graphic = allGraphics[i];
// Проверяем, заблокирован ли текущий слой, на котором находится графический элемент
if (graphic.itemLayer.locked) {
continue; // Если слой заблокирован, пропускаем его и переходим к следующему
}
// Проверяем, заблокирован ли текущий элемент
if (graphic.locked) {
continue; // Если элемент заблокирован, пропускаем его и переходим к следующему
}
// Создаем текстовый блок для подписи
var captionFrame = myPage.textFrames.add (app.documents[0].layers.item('Подписи'));
// Получаем название файла изображения
var fileName = graphic.itemLink.name;
// Помещаем подпись ниже изображения
captionFrame.geometricBounds = [
graphic.parent.geometricBounds[2] + offset +x, // Верхний край подписи (смещение на 3 пункта)
graphic.parent.geometricBounds[1], // Левый край подписи
graphic.parent.geometricBounds[2] + offset +20, // Нижний край подписи (смещение по вертикали)
graphic.parent.geometricBounds[3] // Правый край подписи
];
// Устанавливаем содержимое текстового кадра равным названию файла
captionFrame.contents = fileName;
// Выравниваем текст по центру
captionFrame.texts[0].justification = Justification.CENTER_ALIGN;
}
}
}
}
}
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, 'Add Caption To Images 2');