编辑:我不再要求使用Unicode库。不仅有一个被联系起来,而且原始问题不适合提问,如下所述。这个问题现在集中在如何在XSL-FO中实现unicode。
我现在的主要问题是实现unicode需要哪些步骤。我已经有了必要的unicode字符引用,但我知道也需要选择正确的'字体',并且我认为还需要采取其他步骤才能在我的XSL-FO文档中实现它。
答案 0 :(得分:1)
“写外国字”是什么意思? XSL-FO文件只是一个XML文件,因此您可以使用任何Unicode引用来计算字符编号,然后使用XML数字字符引用来包含它。
例如,欧元符号€的Unicode十六进制是U + 20ac,因此在XML(XSL-FO)中将是€
答案 1 :(得分: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);
}
在这个新方法中使用这个库,欧元符号神奇地变得可见!