java batik 字体文件_java – 当使用Batik的SVGGraphics2D时,如何设置font-family而不是font?...

我目前使用Batik的SVGGraphics2D有以下代码:

...

final SVGGraphics2D svgGraphics2D = new SVGGraphics2D(svgGeneratorContext, false);

svgGraphics2D.setSVGCanvasSize(new Dimension(width, height));

svgGraphics2D.setFont(font);

...

因此,如果font是执行代码的系统上的可用字体,则会将正确的属性添加到生成的SVG文件中.

但是,如果字体丢失(例如Linux盒子上的“Verdana”),则使用默认字体(font-family:’Dialog’).

因此,我想传递一个font-family,而不是指定一个字体,以便在生成的SVG中使用font-family =“DejaVu Sans,Verdana,Geneva,sans-serif”.我怎么能实现这一点,如果我没有错,API只接受字体参数?

我希望有一种比使用xslt转换xml输出更简单的方法.

先感谢您.

最佳答案 如果你有一个(许可的)字体文件,比如资源,你可以这样做:

InputStream is = SomeClass.getResourceAsStream("/fonts/DejaVu Sans.ttf");

Font font = Font.createFont(Font.TRUETYPE_FONT, is);

GraphicsEnvironment.getLocalGraphicsEnvironment();

ge.registerFont(font);

这是使用自己的字体提供应用程序的一般方法.

然后在SVG中,您可以嵌入独立svg文件的确切字体.

我不知道这样做是不可能的:

font-family="'DejaVu Sans',Verdana,Geneva,sans-serif"

因为这将是CSS的方式.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值