Как найти номер страницы истории в документе IDML?

Я новичок в документе IDML, и мне было интересно, как найти номер страницы определенной истории. Spread_XXXX.xml имеет элементы Page, которые в основном описывают количество страниц в распространении, и TextFrame, который ссылается на историю. Однако я не смог найти никакой связи между ними.

1 ответ

Я знаю, что опаздываю на вечеринку, но, возможно, ответ будет полезен кому-то другому.

Хотя ход ваших мыслей отчасти верен (текстовый фрейм находится на странице), в InDesign / IDML реальность совершенно иная. Фактическая зависимость выглядит следующим образом (упрощенно):

      Document:
|
|-Spread
  |
  |-Page
  |-Page
  |-TextFrame
  |-TextFrame
  |-Rectangle... and so on

Как видите, текстовый фрейм - это не дочерний элемент страницы, а разворот. Это относительно системы координат спреда.

И в этом есть смысл. Изображение у вас есть такой макет:

      |________Spread___________|
|___Page 1___|___Page 2___|
|       |__Text 1__|      |
|       |          |      |
|       |__________|      |
|____________|____________|

Вопрос: на какой странице Text 1? Вы не можете ответить на этот вопрос. Все, что вы могли сделать, - это выяснить, находится ли угол текстового фрейма в пределах ограничительной рамки определенной страницы.

Цитата из кулинарной книги IDML:

По умолчанию элементы страницы находятся в координатах разворота. Начало координат находится в центральной точке привязки страницы. Часто проще работать с координатами страницы. Это может быть достигнуто в IDML путем настройки матрицы ItemTransform элемента страницы. По сути, это вопрос перемещения начала координат из центральной точки разворота в верхний левый угол страницы, как показано ниже:

  1. Определите отсчитываемое от нуля расположение привязки страницы, как описано выше.
  2. Определите индекс страницы с отсчетом от нуля.
  3. Определите ширину страницы.
  4. Определите высоту страницы.
  5. Рассчитайте перевод по оси x (или по горизонтали) следующим образом: xTranslation = (pageIndex - pageBinding) * pageWidth
  6. Вычислите сдвиг по оси y (или по вертикали) следующим образом: yTranslation = pageHeight / 2
  7. Добавьте yTranslation.

Например, следующий текстовый фрейм находится на странице слева от привязки; следовательно, он преобразуется по горизонтали -612 точек и по вертикали -396 точек. Это перемещает начало координат из центра привязки влево на 612 пунктов и вверх на 396 пунктов.

       <TextFrame ... ItemTransform="1 0 0 1 -612 -396">
...
<PathPointArray>
<PathPointType Anchor="36 36" LeftDirection="36 36"
RightDirection="36 36"/>
...
Другие вопросы по тегам