如何从PDF页面获取文本?

发布于 2025-01-08 12:50:33 字数 38 浏览 1 评论 0原文

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

How can I get the text from PDF page in Objective-C?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

子栖 2025-01-15 12:50:34

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

  1. muPDF (http://www.mupdf.com/ )很棒的图书馆 - 它可以很好地进行提取。它是根据 GPL 获得许可的,但这对我们的专有应用程序来说是一个障碍。
  2. 基于 CGPDFScanner。您可以在此处找到有关如何执行此操作的简短说明。这种方法的主要问题是 SDK 本身 - Apple 的 PDF API 受到严重(并且我故意怀疑)限制。例如,您必须在 2D 空间中布置提取的文本块,因为 PDF 不能保证绘图顺序与文本流匹配,并且 iOS SDK 在这里没有一点帮助。
  3. Poppler (http://poppler.freedesktop.org/) 还可以,但对于文本提取来说,它是一个大致相当于第二个选项(具有大量额外的依赖项)。

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

First of all - give up on any "quick & dirty" solution for parsing PDF - it will fail miserably. My colleague spent a lot of time trying to solve this problem correctly in iOS. His top 3 (by quality, descending) options:

  1. muPDF (http://www.mupdf.com/) Great library - it will do extraction fine. It is licensed under GPL though which is a show stopper for our proprietary application.
  2. Homemade solution based on the CGPDFScanner. You can find a short description of how to do this here . The main problem of this approach is SDK itself - Apple's API for PDF is severely (and deliberately I suspect) limited. For example you'll have to lay out extracted text blocks in 2D space because PDF doesn't guarantee that order of drawing matches text flow and iOS SDK is not a bit helpful here.
  3. Poppler (http://poppler.freedesktop.org/) is OK but for the text extraction it is a rough equivalent of the second option (with tons of additional dependencies).

There can be more options with Mac OS X but I don't know them.

埖埖迣鎅 2025-01-15 12:50:34

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

Is this for iOS or OS X? If for OS X you could simply create an Automator workflow to extract the text, and call that workflow from your app. Automator has a PDF action "Extract PDF Text" for exactly this purpose. The Automator framework allows calling of automator actions from your app. And some sample code can be found at http://rogueamoeba.com/utm/2005/06/03/ (note that the actual code has been updated to make use of the Automator framework).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文