gpt4 book ai didi

xml - 添加超链接到 indesign

转载 作者:行者123 更新时间:2023-12-04 05:26:28 28 4
gpt4 key购买 nike

我对 Adob​​e Indesign 还很陌生,但我对各种编码语言都满意。

我想创建一个基于 Web 的文档,其中列出了一些产品和产品说明,每个产品说明都充当在线产品本身的超链接。

我已经创建了列出我想通过 XML 导入的各种属性的 XML,但是我在定义 URL 以充当超链接时遇到了麻烦。

我当前的 xml 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>

<list>

<product href="http://www.google.co.uk">
<BrandName>Brand 1</BrandName>
<Title>Shirt</Title>
<FullPrice>£25</FullPrice>
<ProductCode>ABC123</ProductCode>
</product>

<product href="http://www.google.co.uk">
<BrandName>Brand 2</BrandName>
<Title>Jacket</Title>
<FullPrice>£20</FullPrice>
<ProductCode>DEF456</ProductCode>
</product>

</list>

但是,它不起作用。
我可能错过了一些非常简单的东西,但我目前不知所措。

我只是希望能够将元素从结构拖到我的页面上,另存为 PDF 并知道每个产品都将链接到相关的超链接。

任何帮助将不胜感激。

最佳答案

XML 与 InDesign DOM 对象断开连接。您必须明确定义哪个 XML 元素与哪个 InDesign 对象搭配使用,通常是通过标记的方式。通过给予 product XML 元素 href属性你实际上并没有告诉 InDesign 它是一个超链接。

为了告诉 InDesign 它是一个超链接,您可以遍历每个 product XML 元素使用 InDesign javascript 引擎并根据元素的属性将超链接应用于文本。

下面是一个例子:

#include "./XML Rules/glue code.jsx"

main();

function main() {
var doc = app.activeDocument;
var elems = doc.xmlElements;
var ruleSet = new Array (new Rule);
__processRuleSet(elems[0], ruleSet);

function Rule() {
this.name = "Rule";
this.xpath = "//product[@href]";
this.apply = function(elem, ruleProcessor) {
var elemText = elem.texts[0];
var linkURL = elem.xmlAttributes.itemByName("href").value;
var linkSource = doc.hyperlinkTextSources.add(elemText);
var linkDest = doc.hyperlinkURLDestinations.add(linkURL);
doc.hyperlinks.add(linkSource, linkDest);
return true;
}
}
}

可能有更简单的方法,但我不知道。

关于xml - 添加超链接到 indesign,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13157778/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com