我正在使用Apache POI。
我能够通过使用"org.apache.poi.hwpf.extractor"从文档文件中读取文本。WordExtractor "
甚至通过使用"org.apache.poi.hwpf.usermodel.Table"来获取表
但是请告诉我,我怎样才能获取文本的粗体/斜体格式。
WordExtractor
只返回文本,不返回其他内容。
获取word文档的文本+格式的最简单方法是切换到使用Apache Tika。Apache Tika构建在Apache POI(以及其他)之上,并提供纯文本提取和富文本提取(带格式的XHTML)。
或者,如果您想自己编写代码,我建议您查看Tika的WordExtractor中的代码,该代码演示了如何使用Apache POI获取文本运行的格式化信息。
不使用WordExtractor,您可以使用Range:
读取...
HWPFDocument doc = new HWPFDocument(fis);
Range r = doc.getRange();
...
Range是该模型的中心类。当您获得范围时,您可以更多地使用文本的特性,例如,遍历所有CharacterRuns,并检查它是否为Italic(. isitalic())或更改为Italic: (. seitalic (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,它可以工作。在两者之间,用段落的概念来框架和工作是比较方便的。