Как программно определить, является ли какой-либо текст видимым или переполнен в документе 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
Другие вопросы по тегам