2012-10-31 181 views
2

我是Adobe Indesign的新手,但我對各種編碼語言都很滿意。添加超鏈接到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並知道每個產品都將鏈接到相關的超鏈接。

任何幫助將不勝感激。

+0

InDesign文檔中的每個XML元素代表什麼? (即文本框,段落,應用字體樣式等) –

+0

我基本上是在3x3網格中創建一個產品目錄。 每個xml元素都與我想要顯示在頁面上的內容相關。例如。我要爲產品「1」,以顯示: 品牌1 襯衫 £25 ABC123 但在我的文本框的文本鏈接到與它相關的網址。 –

+0

因此,每個'product'元素都與InDesign中的文本框相關聯,並且每個'BrandName','Title','FullPrice','ProductCode'元素都與文本框內的文本相關聯? –

回答

3

XML與InDesign DOM對象斷開連接。您必須明確定義哪個XML元素與哪個InDesign對象配合使用,通常通過標記來定義。通過給product XML元素一個href屬性,您實際上並不告訴InDesign它是超鏈接。

爲了告訴InDesign中它超鏈接,您可以通過使用InDesign中的每個product XML元素循環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; 
     } 
    } 
} 

有可能是一個更簡單的方法,但我沒有意識到這一點。

+0

嗨喬希,謝謝你的這篇文章。不幸的是我的要求已經改變了。看來我現在需要鏈接圖片而不是文字。你知道一種運行腳本的方式來自動超鏈接文件中某些文件名的圖像嗎? 我意識到這是一個複雜的要求。如果沒有,那麼謝謝你花在我的問題上的時間。Rachael –

+0

我相信這是可能的,但我會讓這是你想弄明白的。我已經提供了一個示例腳本,但如果您想自己編寫腳本,可以稍微付一點努力。 [這篇文章](http://meta.stackexchange.com/a/150238/196793)解釋我的理由有點不解決這個問題給你。 –

+0

晚會晚會,但你可以鏈接圖像。內嵌圖片 - alpha1