从PDF中提取所有内容

8
寻找从PDF文件中提取内容的解决方案(使用控制台工具或库)。
它将用于服务器上,从上传的PDF文件生成在线电子书。
需要提取以下内容:
1.带有字体和样式的文本;
2.图像;
3.音频和视频;
4.链接和热点;
5.页面快照和缩略图;
6.一般的PDF信息,如书籍布局,页数等等。
看着Adobe PDF Library($5000),BCL SDK(?), PDFLib(€795),QuickPDF ($250)。
现在我们正在使用开源pdf2xml(提取文本,图像和链接)和GhostScript(快照和缩略图)。剩下的东西是:
1.字体;
2.多媒体;
3.热点;
4.页面信息。
我们正在犹豫是否要支付大量的费用(可能会选择错误的解决方案),还是使用免费/开源的解决方案。
您会推荐哪个最好的解决方案来从PDF中提取几乎所有内容?
任何评论都将不胜感激。
5个回答

5
听起来只需要几天或几周的努力,你就可以将这些开源工具适应到你的需求上。字体和其他东西肯定可以被提取出来,这是每个PDF阅读器必须做的事情,以便显示它们。
你应该估算一下程序员的成本(每小时的美元数),并将其乘以添加所需的开源功能所需的估计时间(60-80小时?)。如果这个成本大于或接近5000美元,你可能要考虑购买商业软件。
否则,通过(相当不错的)PDF参考 的帮助,你应该能够很好地完成任务。
还有一件事,你可能会发现Poppler有所帮助。它用于渲染PDF,但与你正在尝试完成的任务非常相关。

这里的难点在于即使是商业SDK也需要编程工作。在它们的功能摘要中,一切看起来都很棒,但是在查看示例时,仍然不清楚如何将视频提取到外部文件中,它们只会转储注释信息(谈论PDFlib pCOS)。 - Maksym
是的,你必须将这个因素考虑在成本内。 - Adam Goode

1

此外还有PDF Suite,其中包含3个SDK,专门用于从PDF中提取内容、将PDF呈现为图像并转换为HTML。虽然不支持字体文件提取,但它支持XML输出和文本提取,保留原始布局。

有一个"PDF Multitool"免费实用程序,它基于这个引擎,所以您可以使用它来查看您拥有的PDF文件的工作方式。

声明:我为ByteScout工作


它已经在下一个版本的工作中了,它也将能够提取视频。 - Eugene
@alexs,请检查您是否在请求后收到了通知,所有彩票都由技术支持面板进行处理,并且自动发送电子邮件通知有关状态更新的信息(已接收票证,待定,暂停,已解决等)。 - Eugene
@AlexS,请查看您的电子邮件,其中包含具有视频支持的更新版本。 - Eugene
尤金,这里和StackExchange上的整个讨论都是关于“PDF Multi tool”,而不是使用SDK进行编程。我想使用PDF Multi tool(正如您在SE答案中建议的那样)来提取视频,就像它允许提取其他内容一样。如果PDF Multi tool没有更新以支持视频提取,则作为示例解决方案,它是不完整的,我们无法测试它。谢谢,
  • A
- Alex S
@AlexS 噢,没问题。ByteScout PDF Multitool 6.20.2354及以后版本也是在几天前更新到了网站上。它能够提取视频和音频(使用菜单中的“数据提取 - 嵌入式多媒体”)。您可以从 https://bytescout.com/products/pdfmultitool/index.html 下载它。 - Eugene
显示剩余7条评论

1

A: 字体:我认为字体无法被提取。

B: 对于多媒体不确定。

C: 什么是热点?

D: 看看iTextSharp(开源)吧,你可能能够提取更多页面信息。


A: 字体:我认为字体无法被提取。 我们至少需要正确的字体名称才能使用系统字体。B: 对于多媒体不确定 据我所知,多媒体是PDF中的注释对象,因此解决方案应该能够遍历它们以提取正确的内容,对吗?C: 什么是热点? 热点是一种矩形链接,例如在图像的某个部分。请查看iTextSharp(开源),您可能能够提取更多页面信息。 谢谢,我会尝试一下。 - Maksym
我认为iText是用来生成PDF文件而不是提取其内容的。是吗? - Maksym
是的,主要用于生成PDF文件,只是想你或许可以提取一些信息,比如页面数量、页面大小和可能的页面信息?另外,也可以看看http://www.tallcomponents.com/,他们也有一些不错的工具。 - Mark Redman

0

tika http://tika.apache.org/ 它的优势在于从多种类型中提取文本。但它也可以解决你的问题。

对于实现: Tika 的目标是尽可能重用现有的解析器库,如 PDFBox 或 Apache POI,因此 Tika 中的大多数解析器类都是适配器,用于连接这些外部库。

我认为 tika 可以按照你描述的方式工作。提取带有类别的内容。(稍后将添加更多代码。)


目前还没有确切的答案。


0

是的,您可以提取文本、文本样式信息、图像、链接注释、书签,甚至可以获取段落 ID 信息,但除了表格。 请查看此链接。

http://www.pdftron.com/pdfnet/index.html

它真的很好用。


@MS - 视频怎么样? - Alex S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接