我是apache poi的新手,我正在使用poi将一些数据写入docx文件。最近我遇到了字体问题,希望任何人都可以给我一些帮助。
我开始写一个名为empty.docx的空文件,如下所示。
InputStream input = getClass().getClassLoader().getResourceAsStream("empty.docx");
XWPFDocument document = new XWPFDocument(input);
在empty.docx中,默认字体为“Arial'”,这意味着如果您添加任何内容,只要您不手动更改字体,它们就会继承此字体。
但在我填写内容并将其写入新的docx文件后,默认字体已更改为' Century'。
OutputStream output = new FileOutputStream("output.docx");
document.write(output);
我想将其更改回Arial',但经过大量搜索后才找到设置XWPFRun字体的方法。
run.getCTR().getRPr().getRFonts().setEastAsia(eastAsiaFontName);
run.getCTR().getRPr().getRFonts().setHAnsi(normalFontName);
我想知道是否有任何方法可以更改整个文档的全局字体?
答案 0 :(得分:2)
您可以像这样设置文档的默认字体(使用变量名称):
XWPFStyles styles = document.createStyles();
CTFonts fonts = CTFonts.Factory.newInstance();
fonts.setEastAsia(eastAsiaFontName);
fonts.setHAnsi(normalFontName);
styles.setDefaultFonts(fonts);
我目前担心如何设置默认字体 size 。这就是我发现这个问题的原因...... XWPFStyles类有一个成员" CTStyles ctStyles"使用它可以定义XML规范中定义的任何属性。但不幸的是,它只有一个公共二传手,但没有吸气剂。