我是 IDML 文档的新手,想知道如何找到特定故事的页码。Spread_XXXX.xml 具有 Page 元素,它基本上描述了展开中的页面数和引用故事的 TextFrame。但是,我找不到它们之间的任何联系。
问问题
97 次
1 回答
0
我知道我参加聚会有点晚了,但也许答案对其他人有帮助。
虽然您的思路是正确的(文本框架在页面上),但在 InDesign/IDML 中的实际情况完全不同。实际的依赖如下(简化):
Document:
|
|-Spread
|
|-Page
|-Page
|-TextFrame
|-TextFrame
|-Rectangle... and so on
如您所见,文本框架不是页面的子级,而是跨页。它是相对于spread的坐标系的。
这有点道理。图片你有这样的布局:
|________Spread___________|
|___Page 1___|___Page 2___|
| |__Text 1__| |
| | | |
| |__________| |
|____________|____________|
问题是:在哪一页上Text 1
?你无法真正回答这个问题。您所能做的就是确定文本框的一角是否在特定页面的边界框内。
引用 IDML 食谱:
默认情况下,页面项目位于展开坐标中。原点位于页面装订的中心点。通常,在页面坐标中工作更容易。这可以在 IDML 中通过调整页面项的 ItemTransform 矩阵来实现。从概念上讲,这是将原点从扩展中心点移动到页面左上角的问题,如下所示:
- 如上所述,确定从零开始的页面绑定位置。
- 确定从零开始的页面索引。
- 确定页面宽度。
- 确定页面高度。
- 按如下方式计算 x(或水平)平移:xTranslation = (pageIndex - pageBinding) * pageWidth
- 按如下方式计算 y(或垂直)平移:yTranslation = pageHeight / 2
- 添加 yTranslation。
例如,以下 TextFrame 位于绑定左侧的页面上;因此,它水平变换为-612 点,垂直变换为-396 点。这会将原点从绑定中心向左移动 612 点,向上移动 396 点。
<TextFrame ... ItemTransform="1 0 0 1 -612 -396"> ... <PathPointArray> <PathPointType Anchor="36 36" LeftDirection="36 36" RightDirection="36 36"/> ...
于 2021-07-28T08:12:08.063 回答