【发布时间】:2020-09-02 14:09:05
【问题描述】:
我目前使用 Batik 的 SVGGraphics2D 有以下代码:
...
final SVGGraphics2D svgGraphics2D = new SVGGraphics2D(svgGeneratorContext, false);
svgGraphics2D.setSVGCanvasSize(new Dimension(width, height));
svgGraphics2D.setFont(font);
...
因此,如果在执行代码的系统上font 是可用的Font,则会将正确的属性添加到生成的 SVG 文件中。
但是,如果缺少字体(例如 linux 机器上的“Verdana”),则使用默认字体(添加font-family:'Dialog')。
因此,我不想指定字体,而是传递一个字体系列,以便在生成的 SVG 中包含 font-family="DejaVu Sans,Verdana,Geneva,sans-serif"。如果我没记错,API 只接受 Font 参数,我怎么能做到这一点?
我希望有比使用 xslt 转换 xml 输出更简单的方法。
提前谢谢你。
【问题讨论】:
-
关于赏金:我正在寻找添加 CSS 属性的通用解决方案,而不仅仅是字体。 SVGGraphics2D 的使用是绝对必要的。
-
stackoverflow.com/questions/38890844/… 和 stackoverflow.com/questions/14314035/… 提出基本相同的问题,但没有提供答案。有可能 Batic 已经完全死了,只是在 Apache 墓地里不寒而栗,你应该搜索另一个 Java+SVG 库,或者可能会完全改变你的方法。
-
@OlegEstekhin 这就是它的样子。虽然一个真正的答案会很好,但我更有可能接受某种可以完成工作的可疑黑客,只要它是模糊合理的。