0

编辑:我不再要求 Unicode 库。不仅有一个相关联,而且原始问题不适合问,如下所述。现在这个问题的重点是如何在 XSL-FO 中实现 unicode。

我现在的主要问题是实现 unicode 需要哪些步骤。我已经有了必要的 unicode 字符引用,但我知道还需要选择正确的“字体”,并且我相信还需要采取其他步骤才能在我的 XSL-FO 文档中实现它.

4

2 回答 2

1

“写外文”是什么意思?XSL-FO 文件只是一个 XML 文件,因此您可以使用任何 Unicode 引用来计算字符编号,然后使用 XML 数字字符引用来包含它。

例如,欧元符号 € 的 Unicode 十六进制为 U+20ac,因此在 XML (XSL-FO) 中为 €

于 2013-07-22T20:38:19.540 回答
0

我遇到了同样的问题。unicode 字符的问题是在 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-14T16:04:02.603 回答