2012-02-24 200 views
2

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

+0

重复的问题。请参阅http://stackoverflow.com/questions/3287635/how-to-parse-pdf-in-objective-c-for-ipad – Avi 2012-02-24 08:36:17

+0

那么答案在哪里呢? – demon9733 2012-02-24 08:38:15

+1

@Avram这个问题与从PDF提取文本无关 – hoha 2012-02-24 08:39:27

回答

2

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

+0

这是关于iOS的。 – demon9733 2012-02-24 15:26:41

+0

然后如下所述,您需要使用第三方库或开发自己的库。除了已经提到的那些,你可能会检查出https://github.com/KurtCode/PDFKitten/(搜索功能,但也可以提取文本)和https://github.com/mobfarm/FastPdfKit(免费版本作为付费版本可用) – VsSoft 2012-02-25 13:46:05

4

首先 - 放弃任何用于解析PDF的“快速&脏”解决方案 - 它会失败。我的同事花了很多时间在iOS上正确地解决这个问题。他的前3名(质量,降序)选项:

  1. muPDF(http://www.mupdf.com/)伟大的图书馆 - 它会做提取罚款。它在GPL下获得许可,但这对于我们的专有应用来说是一个阻碍。
  2. 基于CGPDFScanner的自制解决方案。你可以找到如何做到这一点的简短说明here。这种方法的主要问题是SDK本身 - 苹果公司的PDF API非常严格(并且故意怀疑)是有限的。例如,您必须在2D空间中放置提取的文本块,因为PDF不能保证绘图的顺序与文本流相匹配,并且iOS SDK在这里没有什么帮助。
  3. Poppler(http://poppler.freedesktop.org/)是可以的,但对于文本提取,它大致等同于第二个选项(具有大量额外的依赖关系)。

可以有更多的选项与Mac OS X,但我不知道他们。

+1

muPDF仅用于查看。 – Jamil 2016-03-21 10:52:40