Как программно определить, является ли какой-либо текст видимым или переполнен в документе InDesign с использованием ExtendScript?
Я строю панель InDesign с ExtendScript, который находит текст и показывает его пользователю. Для этого я использую showText()
метод объекта Character. Проблема в том, что иногда искомый текст не появляется, потому что, хотя метод показывает нужную страницу в нужном месте, текст переполнен и не виден.
Есть ли способ проверить, виден ли текст или нет? В идеале я хотел бы иметь возможность обратиться к редактору историй, если текст нельзя увидеть как есть...
2 ответа
Вы можете вызвать свойство baseline для текста в инструкции try/catch. Если текст виден, baseline вернет значение, в противном случае возникнет ошибка.
Лоик
Чтобы проверить ситуацию для отдельного символа, посмотрите свойство parentTextFrames, оно возвращает массив с 0 или 1 кадром. В редких случаях точек вставки, левая сторона которых находится в одном кадре, а правая - в следующем, вы получите два кадра.
app.selection[0].characters.item(0).parentTextFrames.length
Вы также можете сравнить индекс вашего персонажа с последним индексом в последнем текстовом контейнере истории, например
app.selection[0].parentStory.textContainers.pop().characters.lastItem().index
Конечно, вы должны сначала посмотреть, есть ли переполнение вообще...
app.selection[0].parentStory.overflows