我使用的是宇瞻POI 3.12 操作系统:Mac OSApache POI。 XWPFRun:fontFamily中没有更新
我试图创建从文件中的文本一些DOCX Word文档。 文件中的文本是西里尔文。
XWPFDocument doc = new XWPFDocument(new FileInputStream(new File("template.docx")));
XWPFRun run = doc.createParagraph().createRun();
run.setText(getTextFromFile("text.txt"));
run.setFontSize(14);
run.setFontFamily("Calibri");
其中getTextFromFile(字符串路径) - 是我的函数,它的工作,返回正确的字符串。 但是,当生成文档时,字体样式是Times New Roman,大小14. 我试图先setFontFamily,然后setText,但是抛出了NPE。我已经读过setFontFamily的这个NPE是在apache poi 3.8中修复的,但是看起来并不是这样。
另外我试过把字符串从文件中setText方法,它也不工作。 当文本不是西里尔文时,一切正常,字体系列被更新。
我应该怎么做才能正常使用西里尔文字?
我发现下面的解决方案,但它不是为我工作:Why Apache POI XWPFRun.setFontFamily() for cyrillic works wrong?
myXWPFRun.getCTR().getRPr().getRFonts()
为null,并且NPE被抛出。这样的暗示对于西里尔之前
XWPFRun run = doc.createParagraph().createRun();
run.setText("Привет");
run.setFontSize(14);
run.setFontFamily("Calibri");
run.getCTR().getRPr().getRFonts().setHAnsi("Calibri");
需要setFontFamily: