2014-10-30 144 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> 

我希望能夠以超鏈接添加到字符串。實際的URL鏈接,就像我提到的,來自於XML以及因此它看起來像這樣我的XSL:

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

我一直在四處尋找,但我經常發現代碼較側重的網站,但我做的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 2014-10-30 18:45:29

+0

完全不確定,但是這個PDF是在一個名爲Workbooks CRM的產品中生成的。 xml version =「1.0」encoding =「UTF-8」 – idxearo 2014-10-30 18:55:58

回答

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。超鏈接的目標的URL是一個元素訪問從您的XSL命名cf_customer_quotation_line_item_product_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> 

external-link的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> 

如果你發現還是不行,請嘗試單擊底部的圖像 - 它可能是超文本區域只是「文本高」。如果發生這種情況,請將text-altitude添加到與圖像高度相同的fo:basic-link(我已更新上述示例)。

+0

餅乾, 我用你的代碼替換了我的代碼,它和我的代碼含義相同,圖像沒有超鏈接。儘管如此,圖像仍然顯示,所以至少沒有中斷。 – idxearo 2014-10-30 19:30:59

+0

@idxearo我做了另一個編輯。使用您的代碼,鏈接是否顯示在圖像的底部?如果是這樣,請將'text-altitude'添加到鏈接。 – biscuit314 2014-10-30 19:36:05

+0

你最初是正確的,「鏈接」低於圖像在一個小的小區域。我已經添加了文字高度,因爲您已經修改,但這不起作用。我相信我可能已經在某處看到文本高度在PDFS上不起作用(不確定PDF使用的引擎/ XSL類型的正確詞語)。這個高度屬性有不同的語法嗎? 編輯稱爲FOP的文字海拔不起作用 – idxearo 2014-10-30 19:44:54

相關問題