从RTF文件中读取文本

时间:2013-11-07 07:21:58

标签: java apache-poi

我尝试使用Apache POI读取rtf文件,但我发现了它的问题。它报告无效标头例外。好像POI不支持rtf文件。有没有办法使用任何开源Java API 来阅读.rtf。 (我听说过Aspose API,但它不是免费的)

任何解决方案?

2 个答案:

答案 0 :(得分:6)

您可以尝试RTFEditorKit。它也支持图像和文本。

或者看看这个答案:Java API to convert RTF file to Word document (97-2003 format)

没有支持此功能的免费库。但是自己创建一个基本的比较函数可能并不难。您可以读入rtf文件,然后提取如下文本:

// read rtf from file
JEditorPane p = new JEditorPane();
p.setContentType("text/rtf");
EditorKit rtfKit = p.getEditorKitForContentType("text/rtf");
rtfKit.read(new FileReader(fileName), p.getDocument(), 0);
rtfKit = null;

// convert to text
EditorKit txtKit = p.getEditorKitForContentType("text/plain");
Writer writer = new StringWriter();
txtKit.write(writer, p.getDocument(), 0, p.getDocument().getLength());
String documentText = writer.toString();

答案 1 :(得分:-1)

最简单的方法是使用Java中的Scanner类和FileReader对象。简单的例子:

Scanner in = new Scanner(new FileReader(“filename.rtf”));

Scanner有几种读取字符串,数字等的方法......您可以在Java文档页面上查找更多相关信息。