最近使用Java Apache POI对word进行编辑,需要实现一段落两种字体样式,但是无论怎么修改就只能出现一种字体,有没有知道怎么修改的
public static void createContentLine2(XWPFRun run, List<String> textList){
run.setFontSize(16);
for(int i=0; i<textList.size(); i++){
String val = textList.get(i);
if(val.contains(":")){
// 新建 字体配置对象
//中文
int index = val.indexOf(":")+1;
if(index==val.length()){
run.setText(val);
run.setFontSize(16);
run.setFontFamily("黑体");
}else {
String str1 = val.substring(0, index);
run.setText(str1);
CTRPr rpr = run.getCTR().isSetRPr() ? run.getCTR().getRPr() : run.getCTR().addNewRPr();
CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts();
fonts.setAscii("黑体");
fonts.setEastAsia("黑体");
fonts.setHAnsi("黑体");
//run.setFontFamily("黑体", XWPFRun.FontCharRange.eastAsia);
String str2 = val.substring(index);
//run.setText(mapkey+String.valueOf(i));
run.setText(str2);
rpr = run.getCTR().isSetRPr() ? run.getCTR().getRPr() : run.getCTR().addNewRPr();
fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts();
fonts.setAscii("仿宋");
fonts.setEastAsia("仿宋");
//fonts.setHAnsi("仿宋");
//run.setFontFamily("仿宋", XWPFRun.FontCharRange.eastAsia);
run.setFontFamily("仿宋", XWPFRun.FontCharRange.cs);
}
run.addBreak();
run.addTab();
}
}
}
** 想要实现的效果是替换word文本中的匹配字段放入List中的数据
例如:冒号前面是黑体后面的文字是仿宋的效果
张三:今天工作
李四:今天回家
王五:今天劳务**