2

我们有一个 web 应用程序,我们在其中为我们举办的活动绘制地图,现在我们正在尝试将保存到我们数据库中的数据导入到 indesign 中,以便能够从那里编辑和打印它。

webversion 地图如下所示: 在此处输入图像描述

我用于此 atm 的代码是 <Rectangle Self="u133" StrokeWeight="0.1" FillColor="Color/u13b" strokecolor="Color/white" ItemTransform="12 0 0 8 180 60">

完整版在这里:http ://nieuws.holapress.com/plattegrond/xml/stands.php?hal=1 我将其保存为 idms,然后将其放入 indesign 中。

结果如下所示: 在此处输入图像描述

这是完美的,但现在我遇到了一个问题,我们需要每个盒子里的数字,我似乎无法让它正常工作,有谁知道我如何能够在每个盒子中获取文本并将其对齐在中间?

提前致谢,

4

1 回答 1

3

恐怕该解决方案将需要更多代码,希望您可以对此进行调整,以便为您正确格式化代码。我相信最好的方法是将矩形更改为“文本框架”,以便它们可以包含文本,并且其中的文本可以根据矩形/文本框架边界对齐。

定义段落样式

首先,您必须声明一个“段落样式”(在概念上类似于 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在上述TextFrames 中分配的内容:

<Story Self="st1">
    <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/myParaStyle">
        <Content>1st Text Box</Content>
    </ParagraphStyleRange>
</Story>

在所有故事之后,您可以使用 关闭文档/Document

样本

具有 3 个不同帧的完整文件示例,每个帧都有自己的文本,看起来像这个 pastebin
导入的 IDML 示例

于 2013-09-12T19:36:03.637 回答