Java 从RTF文件读取文本

Java 从RTF文件读取文本,java,apache-poi,Java,Apache Poi,我尝试使用ApachePOI读取rtf文件,但发现有问题。它报告无效的头异常。POI似乎不支持rtf文件。是否有任何方法可以使用任何开源JavaAPI读取.rtf。我听说过AsposeAPI,但它不是免费的 有什么解决办法吗 你可以试试这个。它还支持图像和文本 或者看看这个答案: 没有支持此功能的免费库。但自己创建一个基本的比较函数可能并不难。您可以读取rtf文件,然后按如下方式提取文本: // read rtf from file JEditorPane p = new JEditorPane

我尝试使用ApachePOI读取rtf文件,但发现有问题。它报告无效的头异常。POI似乎不支持rtf文件。是否有任何方法可以使用任何开源JavaAPI读取.rtf。我听说过AsposeAPI,但它不是免费的

有什么解决办法吗

你可以试试这个。它还支持图像和文本

或者看看这个答案:

没有支持此功能的免费库。但自己创建一个基本的比较函数可能并不难。您可以读取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();
你可以试试这个。它还支持图像和文本

或者看看这个答案:

没有支持此功能的免费库。但自己创建一个基本的比较函数可能并不难。您可以读取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();

您想从RTF文件中提取什么?RTF非常简单,我相信您不需要专有的解决方案。@remi benoit我只想从.RTF文件中获取纯文本。您可以试试JRTF。工作就像一个魅力!!!您想从RTF文件中提取什么?RTF非常简单,我相信您不需要专有的解决方案。@remi benoit我只想从.RTF文件中获取纯文本。您可以试试JRTF。工作就像一个魅力!!!那不是商业广告吗?。链接上就是这么说的。我在帖子中用粗体字提到了开源JavaAPI。如果我没有错的话,你建议的首先不是API。那不是商业API吗?。链接上就是这么说的。我在帖子中用粗体字提到了开源JavaAPI。如果我没有错的话,你建议的首先不是API。