恐怕该解决方案将需要更多代码,希望您可以对此进行调整,以便为您正确格式化代码。我相信最好的方法是将矩形更改为“文本框架”,以便它们可以包含文本,并且其中的文本可以根据矩形/文本框架边界对齐。
定义段落样式
首先,您必须声明一个“段落样式”(在概念上类似于 CSS),以说明您希望每个框中的文本如何格式化(字体、大小、颜色等):
<RootParagraphStyleGroup Self="myPara">
<ParagraphStyle Self="ParagraphStyle/myParaStyle" Name="myParaStyle" FillColor="Color/Paper" PointSize="14" Justification="CenterAlign">
<Properties>
<AppliedFont type="string">Arial</AppliedFont>
</Properties>
</ParagraphStyle>
</RootParagraphStyleGroup>
创建盒子
接下来,您必须声明所有框架以及将一种 ID 声明为ParentStory="
[Story ID]"
的文本(我们稍后将定义实际文本)将插入此框架:
<Spread Self="sp1">
<TextFrame Self="tf1" ParentStory="st1" ContentType="TextType" FillColor="Color/u13b" StrokeWeight="0" StrokeColor="Swatch/None" ItemTransform="1 0 0 1 0 0">
<Properties>
<PathGeometry>
<GeometryPathType PathOpen="false">
<PathPointArray>
<PathPointType Anchor="0 0" LeftDirection="0 0" RightDirection="0 0" />
<PathPointType Anchor="0 50" LeftDirection="0 50" RightDirection="0 50" />
<PathPointType Anchor="150 50" LeftDirection="150 50" RightDirection="150 50" />
<PathPointType Anchor="150 0" LeftDirection="150 0" RightDirection="150 0" />
</PathPointArray>
</GeometryPathType>
</PathGeometry>
</Properties>
<TextFramePreference VerticalJustification="CenterAlign"></TextFramePreference>
</TextFrame>
</Spread>
我注意到您似乎使用ItemTransform
关键字调整了矩形的大小,但我建议您不要这样做,因为它还会转换框架内的文本(会使字符变形)。相反,您需要通过提供每个框的四个角相对于单个插入点(将 IDMS 文件放入 InDesign 文档时单击的点)的坐标来定义每个框 - 我建议选择上整个地图的最左角,并使用每个文本框相对于该位置的坐标 - 在这种情况下,正 Y 值将低于插入点。作为参考,单位默认为点,即 1" = 72pts。
我还注意到您的网络版本有不同的颜色,您可以通过在开始Document
标记后添加其他颜色定义来应用这些颜色,然后将适当的颜色名称分配给元素的FillColor="
[颜色名称]"
部分TextFrame
。
您可以在标签之间添加任意数量的TextFrame
元素Spread
,然后在 close 之后/Spread
,开始定义进入每个框架的文本。
将文本添加到框中
Story Self="
确保通过分配[故事 ID]来识别每个“故事”,"
以匹配您ParentStory
在上述TextFrame
s 中分配的内容:
<Story Self="st1">
<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/myParaStyle">
<Content>1st Text Box</Content>
</ParagraphStyleRange>
</Story>
在所有故事之后,您可以使用 关闭文档/Document
。
样本
具有 3 个不同帧的完整文件示例,每个帧都有自己的文本,看起来像这个 pastebin。