【问题标题】:How to extract plain text from MS word document file in pure C++? [closed]如何从纯 C++ 中的 MS Word 文档文件中提取纯文本? [关闭]
【发布时间】:2012-01-05 08:05:30
【问题描述】:

是否有任何纯 C++ 库可以从 .doc 文件中提取纯文本?

我正在开发一个 C++ 程序来读取 .doc 和 .pdf 文件。我必须从文件中提取纯文本并将其写入 .txt 文件。

【问题讨论】:

标签: c++


【解决方案1】:

您始终可以使用 OIVT(我认为是 OutsideIn Viewer Technology)现在由 oracle 拥有。

老实说,这不是一个便宜的解决方案,虽然此产品允许您查看、打印等...我想如果我没记错的话,他们确实提供了将内容提取为文本或他们是另一种产品。它可以从几乎任何文档类型(包括 doc、docx、pdf(仅举几例))中执行此操作,而无需使用安装的“原始”应用程序,因为它们有自己的一组过滤器。

这是一个帮助您入门的链接

Outside In Viewer Technolog

祝你好运

【讨论】:

  • The Outside In Technology 还提供了一些其他方法来从文档中提取文本。内容访问和搜索导出的 SearchText 模式。
【解决方案2】:

对于文档 - 使用 Word object model 获取文档并提取文本。这个example 使用 OLE 自动化和 C 。另一个 link for DOCX 可能对你有帮助。

对于 PDF - 使用 Haru

【讨论】:

  • @jmsu - 你确定吗?文档说“文档句柄(HPDF_Doc)-文档句柄是对文档对象进行操作的句柄。”虽然我没有在 HARU 上工作过,但常识让我认为一旦获得文档句柄,就可以阅读文档。
【解决方案3】:

您可以查看 Abiword 使用的开源 C 库,wv

您也可以调用批量转换工具

【讨论】:

  • 我没有使用 vc++。我必须在纯 C++ 中实现它(例如在 Ecliplse cdt 中)。
  • 这三个批处理工具可以通过调用外部程序来使用。这不依赖于任何特定的 C 编译器。 C 库wv 用 GCC 编译得很好,并用于跨平台的 Abiword。我真的不明白为什么你认为你使用的编译器很重要?
  • 你能解释一下如何用c++实现这些批处理工具吗?
  • 你不实现它们,你调用它们。您从您的程序中调用该程序。最简单的方法是使用system()
  • 谢谢。但我不想在我的程序中运行其他应用程序。我需要代码或库来从 .doc 文件中提取纯文本字符串。
【解决方案4】:

如果您想操作/读取 .doc 文件,您可以花时间学习格式并手动操作 .doc 文件。您可以通过MSDN page linking to the format-specification (PDF file) 获取它。
我承认,这需要大量阅读,但是如果您正在寻找创建软件来操作/读取文件,您应该具备相关的基础知识来支持它。

pdf 格式也是如此(它是一种开放格式,因此应该很容易找到这样的规范)。

【讨论】:

  • 我尝试为 pdf 执行此操作。编写了我自己的简单 Pdf 解析器来提取文本、附件和图像。编写初始解析器很容易,但构成文件的 pdf 流可以编码为具有大量参数的一长串编码。这比理智的工作要多得多,我在这一点上停了下来。
猜你喜欢
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2011-10-06
  • 1970-01-01
  • 2015-11-05
相关资源
最近更新 更多