- Сообщения
- 42
- Реакции
- 0
Нашел сценарий уменьшающий размер кернинга, для текста вышедшего за края таблицы (помечен красным овалом).
Помогите его переработать.
Нужно уменьшать шрифт.
Помогите его переработать.
Нужно уменьшать шрифт.
Код:
// Глобальные переменные
var limitPercent; // Допустимая ширина
var ColorRed; // Цвет
//
// Проверки
//
if (app.documents.length == 0) {
alert("Нет открытого документа");
exit();
} else if (app.activeDocument.selection.length == 0) {
alert("Ничего не выделено");
exit();
} else {
var selObj = app.activeDocument.selection[0];
// alert(selObj.constructor.name);
if ((selObj.constructor.name == "Table") || (selObj.constructor.name == "Cell")) {
adjustCellTextScale(selObj.cells); // Вызов основной ф-ции
} else {
alert("Выбранный объект не относится к таблицам");
exit();
}
}
// Основная рабочая функция
function adjustCellTextScale(cells) {
defineVariables(); // Задание переменных пользователем
var parentTableObj = cells[0].parent;
for (var i_cell = 0; i_cell < cells.length; i_cell++) {
var cellObj = cells[i_cell];
while (cellObj.overflows == true) {
if (cellObj.writingDirection==HorizontalOrVertical.HORIZONTAL) {
// Если текст в ячейке горизонтальный
cellObj.texts[0].horizontalScale--; // уменьшение длины текста
parentTableObj.recompose(); // изменить таблицу
if (cellObj.texts[0].horizontalScale < limitPercent) {
// Цель не достигнута в рамках заданных условий по предельной длине текста - красим проблемные ячейки
for (var i_char=0; i_char < cellObj.characters.length; i_char++) {
cellObj.characters[i_char].fillColor = ColorRed;
}
break;
}
} else if (cellObj.writingDirection == HorizontalOrVertical.VERTICAL) {
// Если вертикальный текст в ячейке
cellObj.texts[0].verticalScale--; // уменьшаем высоту
parentTableObj.recompose(); // изменяем таблицу
if (cellObj.texts[0].verticalScale < limitPercent) {
// Цель не достигнута в рамках заданных условий по предельной высоте - красим проблемные ячейки
for (var i_char=0; i_char < cellObj.characters.length; i_char++) {
cellObj.characters[i_char].fillColor = ColorRed;
}
break;
}
} else {
alert("Невозможно определить направление текста в ячейках");
return;
}
}
}
}
//
// Определение цвета и предельной длины текста
//
function defineVariables() {
limitPercent = parseInt(prompt("Задайте предел сжатия текста (%)", 60));
// Задание цвета
ColorRed = app.activeDocument.colors.item("C=15 M=100 Y=100 K=0");
if (ColorRed == null) {
var C = 15; // ???
var M = 100; // ????
var Y = 100; // ????
var K = 0; // ????
var colorOption = {colorValue:[C,M,Y,K],model:ColorModel.process,space:ColorSpace.cmyk,name:"C=15 M=100 Y=100 K=0"}
ColorRed = app.activeDocument.colors.add(colorOption);
}
}