最近项目中需要用到POI的HSLF。遇到一个很头疼的问题。生成PPT的中文字体全部都是宋体。设置字体根本不好用。英文字体没问题。publicstaticvoidmain(String[]args)throwsException{Sl...
最近项目中需要用到POI的HSLF。遇到一个很头疼的问题。生成PPT的中文字体全部都是宋体。设置字体根本不好用。英文字体没问题。
public static void main(String[] args) throws Exception {
SlideShow ppt = new SlideShow();
Slide slide = ppt.createSlide();
TextBox tb = new TextBox();
tb.setAnchor(new Rectangle(100, 100, 100, 20));
// 这里用英文的话,字体都OK,中文的话,字体设置无效
tb.setText("测试字体");
RichTextRun rt = tb.getTextRun().getRichTextRuns()[0];
rt.setFontName("黑体");
rt.setFontSize(50);
slide.addShape(tb);
OutputStream out = new FileOutputStream("c:/font.ppt");
ppt.write(out);
out.close();
}
有哪位前辈遇到这种问题,怎么解决的?
POI的3.2和3.6版本都测试过,应该不是版本的问题。
字体就是用的“黑体”,这个应该不存在不支持的问题。
把上面源码中的tb.setText("测试字体");中的字符串换成英文,一切都正常(黑体显示),再改成中文,变成宋体了......跟魔术一样
展开