Indesign 脚本通过添加标签创建更深层次的结构

发布于 2024-08-19 11:54:48 字数 1480 浏览 5 评论 0原文

我首先开始使用 XSLT 来完成此任务,然后使用 PHP。现在我必须使用 Indesign 脚本(可能是 javascript)来尝试它

我的问题是我有一个没有结构的 indesign 文件(没有任何内容被标记,但所有内容都有段落样式)

我要做的是 1) 根据样式为段落添加广告标签 2) 通过向标签添加父元素来深化结构

示例:

此文本:

Titel 1 (style = title1)
Titel 2 (style = title2)
    some text (style = text1)
    listitem 1 (style = listitem)
    listitem 2 (style = listitem)

必须成为(导出到 XML 时)

<GR.SEQ level="1">
<TITLE>
    <TI>
        <HT>
            Titel 1
        </HT>
    </TI>
</TITLE>

    <GR.SEQ level="2">
        <TITLE>
            <TI>
               <HT>
                    Titel 2
                </HT>
            </TI>
        </TITLE>
        <P>
            some text
        </P>
        <LIST>
            <ITEM>
                <ITEM.CONT>
                    listitem 1
                 </ITEM.CONT>
            </ITEM>
            <ITEM>
                <ITEM.CONT>
                    listitem 2
                </ITEM.CONT>
            </ITEM>
        </LIST>
    </GR>
</GR>

任何帮助表示赞赏!执行此操作的代码示例将非常棒,但朝着正确的方向推动也非常受欢迎。

当我可以改变这个时,我会非常高兴:

Titel 1

对此

<TITLE>
    <TI>
        <HT>
            Titel 1
        </HT>
    </TI>
</TITLE>

I first set out to do this with XSLT, then with PHP. Now i'll have to have a go at it with Indesign scripting (javascript probably)

My problem is that i have an indesign file without structure (nothing is tagged, but everything has a paragraph style)

Wat i have to do is
1) ad tags to paragraphs based on their styles
2) deepen the structure by adding parent-elements to the tags

An example:

This text:

Titel 1 (style = title1)
Titel 2 (style = title2)
    some text (style = text1)
    listitem 1 (style = listitem)
    listitem 2 (style = listitem)

Has to become (on export to XML)

<GR.SEQ level="1">
<TITLE>
    <TI>
        <HT>
            Titel 1
        </HT>
    </TI>
</TITLE>

    <GR.SEQ level="2">
        <TITLE>
            <TI>
               <HT>
                    Titel 2
                </HT>
            </TI>
        </TITLE>
        <P>
            some text
        </P>
        <LIST>
            <ITEM>
                <ITEM.CONT>
                    listitem 1
                 </ITEM.CONT>
            </ITEM>
            <ITEM>
                <ITEM.CONT>
                    listitem 2
                </ITEM.CONT>
            </ITEM>
        </LIST>
    </GR>
</GR>

Any help is appreciated! a code-example that does this would be marvelous but a push in the right direction is also very welcome.

I would be very pleased already when i could change this:

Titel 1

to this

<TITLE>
    <TI>
        <HT>
            Titel 1
        </HT>
    </TI>
</TITLE>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月牙弯弯 2024-08-26 11:54:48

首先,您必须为每个段落/标签定义一个 XMLExportMap-Object,如下所示:(

<yourDoc>.xmlExportMaps.add(<yourParagraphStyle>, <yourParagraphStyle>.name);

而是考虑样式名称中没有空格)

当您定义所有内容时,然后调用以下方法:

<yourDoc>.mapStylesToXMLTags();

因此应该有一个平面根元素中的 XML 结构 然后

: InDesign 和 Javascript 有一些使用 Xpath 的功能,但在我看来很难使用,而且很少实现。

因此,我很高兴导出平面 XML 结构并应用 XSL 样式表来获得更深层次的结构。

希望有帮助

First you have to define an XMLExportMap-Object for each Paragraph/Tag like this:

<yourDoc>.xmlExportMaps.add(<yourParagraphStyle>, <yourParagraphStyle>.name);

(Rather consider that there is no whitespace in your Style-Names)

When you defined all, then you call following method:

<yourDoc>.mapStylesToXMLTags();

As a result there should be a flat XML-structure in the Root-element then

Then: There are some abilities to use Xpath with InDesign and Javascript, but in my opinion hard to use and very less implemented.

So I appreciate to export the flat XML-Structure and apply an XSL-Stylesheet to get a deepened structure.

Hope that helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文