1

摘要: *需要在pdf上显示€符号*

我正在使用 .Net 框架 (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;'"/>

感谢您的帮助和您的时间!如果需要任何其他信息,请告诉我。

4

1 回答 1

1

我遇到了同样的问题。该问题是硬编码在 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);
}

使用这个库和这个新方法,欧元符号神奇地变得可见!

于 2016-01-14T15:58:19.643 回答