2014-10-30 3 views
2

값을 하이퍼 링크로 연결하려고합니다. 하이퍼 링크 자체는 XML에도 저장됩니다. 이것은 PDF의 라인 항목을 출력하는 데 사용됩니다.XSLT : 다른 XML 값에 XML 하이퍼 링크 추가

이 내 현재 코드입니다 : 내가 문자열에 하이퍼 링크를 추가 할 수 있도록

<fo:block font-size="8pt"> 
    <fo:inline> 
    <xsl:value-of select="substring-before(_preload_product_id, &quot; - &quot;)" /> 
    </fo:inline> 
</fo:block> 

. 나는 주위를 찾고있다하지만 일반적으로 웹 사이트에 더 기어드 코드를 찾을 수 있지만,

<xsl:value-of select="cf_customer_quotation_line_item_product_url" /> 

내가 뭐하는 거지 : 내 XSL에 대한 다음과 같습니다 있도록 실제 URL 링크는, 내가 언급처럼,뿐만 아니라 XML에서 온다 PDF 가능 아래와 같은 이미지에이 같은 하이퍼 링크를 추가 할 경우 나는 또한 알고 싶다 :

<fo:block> 
    <fo:external-graphic src="url()" content-height="2cm"> 
      <xsl:attribute name="src"> 
       <xsl:value-of select="cf_customer_quotation_line_item_image_url"/> 
      </xsl:attribute>           
    </fo:external-graphic> 
</fo:block> 
+0

어떤 렌더링 엔진을 사용하고 있습니까? 해당 제품의 기능 일 수 있습니다. 내가 사용하는 제품이 무엇을 제공하는지 확인하고 다시 받아 보겠습니다. – biscuit314

+0

이 PDF는 Workbook CRM이라는 제품에서 생산됩니다. xml version = "1.0"encoding = "UTF-8" – idxearo

답변

0

이미지를 래핑 (또는 당신이 링크를되고 싶은 어떤 다른)를 fo:basic-link

의 경우에 예 :

<fo:block> 
    <fo:basic-link external-link="url(--url to link destination--)"> 
     <fo:external-graphic src="url(--url to image--)" content-height="2cm" /> 
    </fo:basic-link>  
</fo:block> 

예를 들어 구체적인 값을 사용하십시오. 내 하드 드라이브에 이미지가 있습니다 d:\images\smiley.jpg. external-link의 URL에

<fo:block> 
    <fo:basic-link external-link="url({cf_customer_quotation_line_item_product_url})"> 
     <fo:external-graphic src="url(d:\images\smiley.jpg)" content-height="2cm" /> 
    </fo:basic-link>  
</fo:block> 

중괄호() 값의 평가 종류의 원인 : XSL은, 위에서 언급된다 (당신의 예에서와 같이) cf_customer_quotation_line_item_product_url 이름에서 하이퍼 링크의 대상의 URL은 요소에 액세스 할 수 value-of과 같지만 속성 내에 있습니다.

또한 편집 (회신 기준) :

변경이

<fo:block> 
    <fo:basic-link> 
    <xsl:attribute name="external-destination"> 
    <xsl:value-of select="cf_customer_quotation_line_item_product_url"/> 
    </xsl:attribute> 
     <fo:external-graphic src="url()" content-height="2cm"> 
     <xsl:attribute name="src"> 
     <xsl:value-of select="cf_customer_quotation_line_item_image_url"/> 
     </xsl:attribute>           
     </fo:external-graphic> 
    </fo:basic-link> 
</fo:block> 

이에

<fo:block> 
    <fo:basic-link external-destination="url({cf_customer_quotation_line_item_product_url})" text-altitude="2cm"> 
     <fo:external-graphic src="url({cf_customer_quotation_line_item_image_url})" content-height="2cm" /> 
    </fo:basic-link> 
</fo:block> 

여전히 작동 하단에 클릭하지 않는 것을 발견하는 경우 하이퍼 텍스트 영역은 "텍스트 높음"일 수 있습니다. 그러한 일이 발생하면 이미지와 동일한 높이 인 fo:basic-linktext-altitude을 추가하십시오 (위의 예를 업데이트했습니다).

+0

비스킷, 내 코드를 내 코드로 바꿨고 내 코드 의미와 동일하게 작동합니다. 이미지는 하이퍼 링크되지 않습니다. 심상은 아직도 보인다, 그래서 적어도 끊지 않았다. – idxearo

+0

@idxearo 나는 또 다른 편집을했다. 있는 그대로의 코드를 사용하면 링크가 이미지의 맨 아래에 나타 납니까? 그렇다면 '텍스트 고도'를 링크에 추가하십시오. – biscuit314

+0

"링크"가 작고 작은 영역의 이미지 아래에 있다는 것은 처음에 정확했습니다. 수정 한대로 텍스트 고도를 추가했으나 작동하지 않습니다. 나는 텍스트 높이가 PDFS에서 작동하지 않을지도 모른다는 것을 믿습니다 (PDF/XSL 형식의 엔진에 대해 정확한 단어를 모를 경우). 이 고도 속성에 대해 다른 구문이 있습니까? FOP라고하는 편집 - 텍스트 고도가 작동하지 않습니다. – idxearo