Логический порядок Story XML в IDML - PullRequest
3 голосов
/ 01 декабря 2011

Я новичок в IDML и пытаюсь это понять.

Я понял, что IDML - это zip-файл, содержащий несколько XML-файлов. Я открыл designmap.xml и увидел атрибут StoryLine в элементе Document. Однако этот порядок в атрибуте StoryLine не обязательно соответствует логическому порядку текста, отображаемого в реальном контенте.

Например, BusinessCardTemplate внутри IDML SDK имеет следующий логический порядок:

John Doe
Software Developer
InDesign
Adobe Systems Incorporated
801 North 34th Street
Seattle, WA 98103
Phone: 206.675.7000
jdoe@adobe.com
www.adobe.com

Однако, согласно атрибуту StoryList, следующий порядок выглядит следующим образом:

Software Developer
InDesign
John Doe
jdoe@adobe.com
www.adobe.com
Phone: 206.675.7000
801 North 34th Street
Seattle, WA 98103
Adobe Systems Incorporated

Есть ли способ узнать из содержания IDML, чтобы узнать логический порядок (предпочтительно слева направо и снизу слева) этих историй?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 27 августа 2012

Рассказ - это просто текстовое содержание, абстрагированное от его использования в документе. Если вы хотите, чтобы истории были в правильном порядке, вам необходимо:

1) Найдите файл designmap.xml в корне распакованного IDML-файла (сначала распакуйте его целиком - я думаю, вы уже это знаете)

2) Получите из него порядок спредов, найдя элементы спреда:

<idPkg:Spread src="Spreads/Spread_uc6.xml" />

3) Внутри каждого развёрнутого документа получите порядок TextFrames:

<TextFrame Self="uec" ParentStory="uda" PreviousTextFrame="n" NextTextFrame="n" ContentType="TextType" ... (many more parameters) ... />

4) Проверьте ссылку ParentStory для каждого текстового фрейма:

<TextFrame Self="uec" ParentStory="uda" ... />

5) Найдите связанную историю: в этом случае это будет Stories/Story_uda.xml.

В простом документе, где каждый текстовый фрейм сопоставлен с одной историей, это даст вам порядок, в котором ваши истории появляются в документе.

Однако существуют некоторые обстоятельства - например, несколько фреймов, связанных с одной историей, или многопоточные фреймы, где одна история разбита на несколько текстовых фреймов - где это отображение не будет таким простым. Также обратите внимание на сложность, представленную MasterSpreads.

Вы найдете документацию по Adobe IDML полезной: http://www.adobe.com/devnet/indesign/documentation.html#idml

1 голос
/ 10 апреля 2012

Работать напрямую с историями довольно сложно. Это проще, если вы используете функции тегов. Откройте файл InDesign и импортируйте файл XML с правильной структурой для ваших данных. Затем можно пометить части документа для сопоставления с узлами XML.

Как только это будет сделано, экспортируйте документ в IDML, а затем посмотрите в каталоге XML файл BackingStory.xml, где вы найдете такие узлы:

<XMLElement Self="di3i29" MarkupTag="XMLTag/Instructions" XMLContent="u16a" />

Это определяет отображение для XML-узла Instructions в файл Story_u16a.xml. Однако вам больше не нужно беспокоиться об истории, поскольку у вас уже есть доступ к значению узла, которое будет введено в историю.

В этом руководстве объясняется тег XML InDesign .

...