Apache FOP(XML)中SVG中的Unicode(西里尔文)文本

Apache FOP(XML)中SVG中的Unicode(西里尔文)文本,unicode,apache-fop,Unicode,Apache Fop,(我不知道我使用的是哪一个FOP版本。我只能访问服务的API/HTTP。我在问。) 我正在用ApacheFop制作PDF。它包含带有的SVG。有些文本是保加利亚文/西里尔文,在SVG内部和外部 在web浏览器中,保加利亚语不需要编码: 在a中: 在一个中:СПСПааааааа 在Apache FOP输入XML中,它需要编码: SVG外部:和#1057портуване 每个字符都

(我不知道我使用的是哪一个FOP版本。我只能访问服务的API/HTTP。我在问。)

我正在用ApacheFop制作PDF。它包含带有
的SVG。有些文本是保加利亚文/西里尔文,在SVG内部和外部

在web浏览器中,保加利亚语不需要编码:

  • 在a
    中:
  • 在一个
    中:
    СПСПааааааа
在Apache FOP输入XML中,它需要编码:

  • SVG外部:
    和#1057портуване
    
    • 每个字符都被编码成
    • 这是可行的,外部SVG
  • SVG内部:
    和#1057портуване
    
    • (本地名称空间为svg
  • 相同的精确编码
  • 不起作用=(
所以唯一不起作用的部分是SVG内部的文本。外部的文本工作得很好

这不是字体。我可以将SVG的内部和外部字体更改为
Times
(),新字体也会如此:在SVG外部工作,而不是在内部工作

Web浏览器结果:

PDF结果:

PDF,SVG外部:

我对美学的特殊拼写(
aëstéthics
)在PDF SVG中起作用。它只是部分编码,因为有些字符是安全的ASCII:
aë;sté;thics
Ӓ;
编码字符起作用,就像它们在SVG之外对西里尔文所起的作用一样

如何在FOP中的SVG中添加unicode


同一服务器上的“新”版本(1.1)在CLI上:

没有字体配置,unicode无法工作,所有文本都是SVG内部和外部的

使用字体配置(从Windows复制的TTF字体):

以下是一系列警告:

ApacheFop尚未实现以下功能:table layout=“auto”(在fo:table上)(参见位置29:34)

其中一些:

字形“imk_”(0x418,Iicyrillic)在字体“Helvetica”中不可用

但结果非常不错。与0.9版相同。SVG内部没有Unicode,但外部可以工作


Omg Omg Omg 2.1版在不同的服务器上工作

即使有奇怪的java错误:

[警告]/usr/bin/fop:JVM味道“sun”不可理解

如果正确的服务器上只有2.1版可用,并且有http api访问


据我所知(也许我错了),FOP使用Apache Batik(作为库)要在呈现PDF文件时将.fo中的任何SVG文件转换为PNG,请尝试单独使用Apache Batik将带有字体的SVG图像转换为任何PNG图像,并获得什么结果?@Eduardzing PDF中的SVG似乎不是PNG,因为所有文本都是可选的。可能其余的是PNG,但这不是问题。只有text是,它仍然是PDF中的文本。我只是尝试隔离复杂系统的不同部分,以了解问题出现的位置。这就是为什么猜测蜡染。这不是一个坏猜测=)在这种情况下不正确。FOP的专业人士显然不多=(托管公司也不太愿意(可以理解)。你能试着在本地安装该软件的最新副本并尝试查找问题吗?所有部分都是开源的,所以从许可的角度来说对你是免费的。正如我所知(可能我错了),FOP使用Apache Batik(作为库)要在呈现PDF文件时将.fo中的任何SVG文件转换为PNG,请尝试单独使用Apache Batik将带有字体的SVG图像转换为任何PNG图像,并获得什么结果?@Eduardzing PDF中的SVG似乎不是PNG,因为所有文本都是可选的。可能其余的是PNG,但这不是问题。只有text是,它仍然是PDF中的文本。我只是尝试隔离复杂系统的不同部分,以了解问题出现的位置。这就是为什么猜测蜡染。这不是一个坏猜测=)在这种情况下不正确。FOP的专业人士显然不多=(托管公司也不太愿意(可以理解)。你能试着在本地安装该软件的最新副本并尝试查找问题吗?所有部分都是开源的,所以从许可的角度来说对你来说都是免费的。
fop -fo input.xml -c fop.conf.xml -pdf output-1.pdf