1

我尝试使用 Apache POI 读取 rtf 文件,但我发现它存在问题。它报告 Invalid Header 异常。POI 似乎不支持 rtf 文件。有没有办法使用任何开源 java API读取 .rtf 。(我听说过 Aspose API,但它不是免费的)

有什么解决办法??

4

1 回答 1

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();
于 2013-11-07T08:00:38.207 回答