我使用的是宇瞻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: