如何从PDF页面获取文本?

时间:2012-02-24 08:32:07

标签: objective-c pdf

如何从Objective-C中的PDF页面获取文本?

2 个答案:

答案 0 :(得分:5)

首先 - 放弃解析PDF的任何“快速和肮脏”解决方案 - 它将失败。我的同事花了很多时间试图在iOS中正确解决这个问题。他的前三名(按质量,下降)选项:

  1. muPDF(http://www.mupdf.com/)很棒的图书馆 - 它可以很好地提取。它是根据GPL许可的,虽然这是我们专有应用程序的显示阻止。
  2. 基于CGPDFScanner的自制解决方案。您可以找到有关如何执行此操作的简短说明here。这种方法的主要问题是SDK本身 - Apple的PDF版本严格(我故意怀疑)有限。例如,您必须在2D空间中布置提取的文本块,因为PDF不保证绘图顺序与文本流匹配,iOS SDK在这里没有多大帮助。
  3. Poppler(http://poppler.freedesktop.org/)没问题,但对于文本提取,它大致相当于第二个选项(有大量额外的依赖项)。
  4. Mac OS X可以有更多选项,但我不知道。

答案 1 :(得分:2)

适用于iOS或OS X吗?如果对于OS X,您可以简单地创建一个Automator工作流程来提取文本,并从您的应用程序调用该工作流程。 Automator正是为了这个目的而提供PDF动作“提取PDF文本”。 Automator framework允许从您的应用调用自动播放器操作。并且可以在http://rogueamoeba.com/utm/2005/06/03/找到一些示例代码(请注意,实际代码已更新以使用Automator框架)。