我正在使用Apache POI。
我可以使用“org.apache.poi.hwpf.extractor.WordExtractor”从doc文件中读取文本
甚至使用“org.apache.poi.hwpf.usermodel.Table”获取表格
但请建议我,如何获取文本的粗体/斜体格式。
提前致谢。
答案 0 :(得分:4)
WordExtractor
只返回文字,没有别的。
获取word文档的文本+格式的最简单方法是切换到使用Apache Tika。 Apache Tika构建于Apache POI(以及其他)之上,并提供纯文本提取和丰富提取(带格式化的XHTML)。
或者,如果您想自己编写代码,我建议您查看Tika's WordExtractor中的代码,该代码演示了如何使用Apache POI获取文本运行的格式化信息。
答案 1 :(得分:1)
您可以使用Range阅读
,而不是使用WordExtractor...
HWPFDocument doc = new HWPFDocument(fis);
Range r = doc.getRange();
...
范围是该模型的中心类。当你获得范围时,你可以更多地使用文本的功能,例如,迭代所有的CharacterRuns,并检查它是否是Italic(.isItalic())或更改为Italic:(。setItalic(true))。
for(int i = 0; i<r.numCharacterRuns(); i++)
{
CharacterRun cr = r.getCharacterRun(i);
cr.setItalic(true);
...
}
...
File fon = new File(yourFilePathOut);
FileOutputStream fos = new FileOutputStream(fon);
doc.write(fos);
...
如果您坚持使用HWPF,它会起作用。之间,框架和使用Paragraph的概念更方便。