2012-10-31 3 views
2

저는 Adobe Indesign을 처음 사용 합니다만, 다양한 코딩 언어를 사용해도 좋습니다.inddesign에 하이퍼 링크 추가

온라인 제품 자체에 대한 하이퍼 링크 역할을하는 제품 설명과 함께 일부 제품 및 제품 설명을 나열하는 웹 기반 문서를 만들고 싶습니다.

나는 XML을 통해 가져 오려는 다양한 속성을 나열하는 XML을 작성했지만, 하이퍼 링크로 작동하도록 URL을 정의하는 데 문제가 있습니다.

<?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> 

그러나, 그냥 작동하지 않습니다 :

나의 현재 XML은 다음과 같이 보입니다. 나는 정말로 간단한 것을 놓친다.하지만 나는 현재 실망하고있다.

구조에서 내 페이지로 요소를 드래그하여 PDF로 저장하고 각 제품이 관련 하이퍼 링크로 연결된다는 것을 알고 싶을뿐입니다.

도움을 주시면 감사하겠습니다.

+0

InDesign 문서에서 각 XML 요소는 무엇을 나타 냅니까? (예 : 텍스트 프레임, 단락, 적용된 문자 스타일 등) –

+0

기본적으로 3x3 격자로 제품 카탈로그를 만듭니다. 각 xml 요소는 페이지에 표시 할 내용과 관련이 있습니다. 예 : 나는 디스플레이 제품 '1'에 대해 원하는 : 브랜드 1 셔츠 £ 25 ABC123 하지만 내 텍스트 상자에 텍스트의 모든 그것과 관련된 URL로 링크 할 . –

+0

그래서 각'product' 요소는 InDesign의 텍스트 상자와 연결되어 있으며 각 'BrandName','Title','FullPrice','ProductCode' 요소는 텍스트 상자 안의 텍스트와 연관되어 있습니까? –

답변

3

XML이 InDesign DOM 객체에서 연결이 끊어졌습니다. 일반적으로 태그 지정을 통해 어떤 XML 요소가 어떤 InDesign 객체와 연결되는지를 명시 적으로 정의해야합니다. product XML 요소에 href 속성을 지정하면 실제로 InDesign에 하이퍼 링크임을 알리지 않습니다. 이야기하기 위해

인디자인이 하이퍼 링크, 당신 수있는 요소의 속성에 따라 텍스트에 하이퍼 링크를 적용 자바 스크립트 엔진과 인디자인을 사용하여 각 product XML 요소를 통해 루프.

다음은 예입니다 :

#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