我尝试使用Apache POI读取rtf文件,但我发现了它的问题。它报告无效标头例外。好像POI不支持rtf文件。有没有办法使用任何开源Java API 来阅读.rtf。 (我听说过Aspose API,但它不是免费的)
任何解决方案?
答案 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文档页面上查找更多相关信息。