在通过Apache Batik渲染的图像中存在一些非常奇怪的失真。这个问题不是暂时的,因为每次调用时都会发生失真,在同一个svg的相同坐标处。这发生在Linux环境中,我无法在macOS环境中重现这个问题。我使用的是奥斯瓦尔德自定义字体(来自谷歌字体),并且使用了转换属性,如字母行间距、旋转功能。
尝试了许多建议,例如:1)验证Owald字体是否已注册到Graphics环境。
2)删除了文本转换属性,如字母-行间距、旋转,但仍然发生失真。我们还用字距替换了字母-行间距属性。尝试使用forme-渲染="几何精度"也没有成功。
3)尝试了其他字体,没有面对Arial自定义字体的失真,但使用Owald、Roboto时失真仍然存在。我们的用户需要Owald Font,因此我们不能使用Arial字体。
4)通过将svg字体嵌入svg文件来尝试SVG字体-没有成功。
5)尝试修剪功能,但没有成功。
6)替换了发生失真并解决问题的字符,但我无法从中推断出任何东西。
7)增加和减少字体大小1px的失真发生和问题得到解决,但我无法从中推断出任何东西。
我发现很少有线程提到蜡染渲染因OS环境而异,但找不到任何解决方案。有人能解决这个问题吗?
将JDK从8升级到11已经解决了这个问题。