在java中将svg转换为pdf时更改字体

时间:2012-10-19 15:14:25

标签: java pdf fonts svg batik

我有一个用于将svg转换为pdf的java程序。在那个svg文件中,我已经将Myriad Pro Light作为样式,在转换为pdf后,字体将会出现其他内容。任何人都可以建议我如何以编程方式配置字体样式。

1 个答案:

答案 0 :(得分:0)

Batik依靠AWT字体来渲染SVG文本。如果在系统上找不到字体或者没有注册,你最终会得到一个默认的“sans serif”字体。

您必须确保系统上安装了“Myriad pro light”字体,并且其字体名称与SVG文件中引用的字体完全相同(查看font-family属性);如果需要,在SVG文件中更正它。

如果不能选择在系统范围内安装字体,可以在创建SVGDocument实例之前使用类似的东西在运行时注册

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
InputStream is = new FileInputStream(new File("path_to_myriad.ttf"));
java.awt.Font font;
try {
    font = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, is);
    ge.registerFont(font);
} catch (FontFormatException e) {
    e.printStackTrace();
}