【发布时间】:2015-09-26 10:16:38
【问题描述】:
我正在使用 Apace POI 3.12 操作系统:Mac 操作系统
我正在尝试使用文件中的文本创建一些 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(String path) - 是我的函数,它正在工作,返回正确的字符串。 但是生成doc时,字体样式是Times New Roman,大小为14。 我试图先 setFontFamily 然后 setText,但抛出了 NPE。我读过 setFontFamily 上的这个 NPE 在 apache poi 3.8 中并在 3.9 中修复,但似乎不是真的。
我还尝试将字符串从文件放入 setText 方法,但它也不起作用。 当文本不是西里尔字母时,一切正常,字体系列已更新。
我应该怎么做才能正确处理西里尔文字?
我找到了以下解决方案,但它对我不起作用:Why Apache POI XWPFRun.setFontFamily() for cyrillic works wrong?
myXWPFRun.getCTR().getRPr().getRFonts() 为 null 并抛出 NPE。
【问题讨论】:
标签: java apache-poi cyrillic