【问题标题】:Read Text from RTF file从 RTF 文件中读取文本
【发布时间】:2016-10-25 12:47:21
【问题描述】:

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

有什么解决办法吗??

【问题讨论】:

  • 您想从 RTF 文件中提取什么? RTF 非常简单,我相信您不需要专有的解决方案。
  • @remi benoit 我只想从 .rtf 文件中获取纯文本
  • 你可以试试 JRTF。像魅力一样工作!!!

标签: java apache-poi


【解决方案1】:

你可以试试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();

【讨论】:

  • 那不是商业广告吗?这就是链接所说的。我在帖子中用粗体字说“开源 java API”。如果我没记错的话,你建议的首先不是 API。
猜你喜欢
  • 1970-01-01
  • 2022-10-17
  • 2015-11-24
  • 2018-10-04
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
相关资源
最近更新 更多