[ID CC2025] Скрипт On-Off Autosize Text frame

Bebs

Топикстартер
20 лет на форуме
Сообщения
471
Реакции
231
  • Скрипт проверяет текущее состояние настройки «Автоматическая установка размера» текстового фрейма.
  • Если «Автоматическая установка размера» выключена (AutoSizingTypeEnum.OFF), скрипт включает её, подгоняя размер только по высоте (AutoSizingTypeEnum.HEIGHT_ONLY). При этом он также устанавливает точку привязки для изменения размера — верхнюю центральную точку (AutoSizingReferenceEnum.TOP_CENTER_POINT).
  • Если же настройка включена, скрипт её выключает.
  • В завершение скрипт показывает всплывающее окно с сообщением, что настройка была успешно изменена.

Вы можете изменить скрипта. Например, если вы хотите, чтобы при включении он подгонял размер по высоте и ширине, просто измените строку:
prefs.autoSizingType = AutoSizingTypeEnum.HEIGHT_ONLY;
на:
prefs.autoSizingType = AutoSizingTypeEnum.WIDTH_AND_HEIGHT;

Код:
// Скрипт переключает опцию "Автоматическая установка размера" у выделенного текстового фрейма.

// Проверяем, что у пользователя что-то выделено.
if (app.selection.length > 0) {
    // Получаем первый выделенный объект.
    var selectedObject = app.selection[0];

    // Убеждаемся, что это именно текстовый фрейм.
    if (selectedObject instanceof TextFrame) {
        // Получаем настройки текстового фрейма.
        var prefs = selectedObject.textFramePreferences;

        // Проверяем текущее состояние "Автоматической установки размера".
        if (prefs.autoSizingType !== AutoSizingTypeEnum.OFF) {
            // Если включена, выключаем.
            prefs.autoSizingType = AutoSizingTypeEnum.OFF;
            alert("Автоматическая установка размера выключена.");
        } else {
            // Если выключена, включаем.
            // Устанавливаем размер по высоте и привязку к верхней средней точке.
            prefs.autoSizingType = AutoSizingTypeEnum.HEIGHT_ONLY;
            prefs.autoSizingReferencePoint = AutoSizingReferenceEnum.TOP_CENTER_POINT;
            alert("Автоматическая установка размера включена (только по высоте).");
        }
    } else {
        // Сообщение об ошибке, если выделен не текстовый фрейм.
        alert("Пожалуйста, выделите текстовый фрейм.");
    }
} else {
    // Сообщение об ошибке, если ничего не выделено.
    alert("Пожалуйста, выделите объект.");
}
 
  • Спасибо
Реакции: Oleg Butrin и iv-mi
Код:
    // Сообщение об ошибке, если ничего не выделено.
    alert("Пожалуйста, выделите объект.");
лучше нацелить на то же сообщение alert("Пожалуйста, выделите текстовый фрейм.");, чтобы не заставлять пользователя делать двойную работу, если он руководствуется подсказкой и не сообразит выделить именно текстовый фрейм.
 
  • Спасибо
Реакции: Bebs