我们在使用poi操作word的时候,如果要填充的内容包含了中文和英文字符,数字等,我们需要的效果是中文是一种字体,其他的全部修改为另一种字体。
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
XWPFParagraph xwpfParagraph = document.createParagraph();
XWPFRun xwpfRun = xwpfParagraph.createRun();
CTRPr rpr = xwpfRun.getCTR().isSetRPr() ? xwpfRun.getCTR().getRPr() : xwpfRun.getCTR().addNewRPr();;
CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts();
//英文字体
String eFont="Times New Roman";
fonts.setAscii(eFont);
//设置中文字体
String zFont = "仿宋";
fonts.setEastAsia(zFont);
fonts.setHAnsi(zFont);//这行作用我也不解
xwpfRun.setFontSize(20);
xwpfRun.setText("标记有“2号紫云烟蒂”检材1份,剪取过滤嘴末端适量,编为D-202100795-24号");
document.write(new FileOutputStream("D:/test.docx"));
}
效果如图:
中文:
英文: