2012-03-02 60 views
0

摘要PDF上簽字: * 需要在PDF *顯示歐元使用XSLT 1.0

我使用.NET Framework(4.0)的XslCompiledTransform類來執行XSLT顯示€跡象。在XSL上使用的字體系列是Times New Roman。我使用FO.Net作爲我的XSL-FO處理器。

我試圖顯示歐元符號(€)是我的輸入XML的一部分。但是,我的輸出pdf顯示€而不是€符號。

<CurrencySymbol> 
€ 
</CurrencySymbol> 

我的一些XSL文件的相關章節有:

<?xml version="1.0" encoding="iso-8859-15"?> 

我使用&#8364;&#x20AC;嘗試,但如果我使用這些,顯示什麼都沒有。

如:<xsl:value-of select="'&#x20AC;'"/>

感謝您的幫助和您的時間!請讓我知道是否需要任何額外的信息。

+0

你正在使用什麼FO處理器? – 2012-03-02 18:22:36

+0

更新後的描述。謝謝! – m27 2012-03-02 18:35:34

+0

看起來像在ISO-8859-15歐元字符是0xA4所以如果這是你的輸出編碼,你可能想嘗試把¤而不是&#x20AC; – Pawel 2012-03-06 01:21:07

回答

0

我遇到了同樣的問題。該問題在FONET.DLL中進行了硬編碼。在類TrueTypeFont方法MapCharacter寫爲:

public override ushort MapCharacter(char c) 
{ 
    if (c > Byte.MaxValue) 
     return (ushort) FirstChar; 
    return mapping.MapCharacter(c); 
} 

因此,與大於255將被「忽略」的數值的任何字符。我下載的來源(來自https://fonet.codeplex.com/)和改性的方法:

public override ushort MapCharacter(char c) 
{ 
    return mapping.MapCharacter(c); 
} 

使用這個庫,這種新方法,歐元符號神奇地變成了看得見!