提取PDF的TOC?

时间:2010-03-12 08:50:23

标签: php pdf xpdf

我在SWFTools和XPDF的帮助下将pdf提取到images / swf和文本中。我在PDF脚本中运行这些文件。

但是现在我想进一步尝试从PDF中获取TOC是否可以提取此信息?

4 个答案:

答案 0 :(得分:12)

我发现了一点点搜索。它看起来很有希望。

PDFMiner:http://www.unixuser.org/~euske/python/pdfminer/index.html

注意:该工具是基于Python的,但您应该能够通过shell访问使用该工具。或者,您可以从源代码本身收集一些有用的信息,因为该项目是开源的。

来自网站:

  

dumppdf.py

     

dumppdf.py以伪XML格式转储PDF文件的内部内容。该程序主要用于调试目的,但也可以提取一些有意义的内容(如图像)。

     

示例:

$ dumppdf.py -a foo.pdf
(dump all the headers and contents, except stream objects)

$ dumppdf.py -T foo.pdf
(dump the table of contents)

$ dumppdf.py -r -i6 foo.pdf > pic.jpeg
(extract a JPEG image)

答案 1 :(得分:5)

我尝试了dump.pdf -T,但它对某些PDF文件无效。

MuPDF还有另一个名为mutool的工具,我刚刚找到了它。我不知道这是否比dump.pdf更好但是在PDF文件上工作dump.pdf会引发错误。

以下是如何使用mutool提取TOC

mutool show {your-pdf-file} outline

MuPDF

答案 2 :(得分:2)

或者,您可以使用MuPDF这是一个非常轻量但完整的PDF实现编写的C.在apps/子目录中,您将找到一些可以查看,转储和从PDF文件中提取信息的工具。我更喜欢MuPDF而不是xpdf,因为它是积极维护的,并且有更好的PDF支持。

否则,总是Poppler实际上是基于xpdf。开发人员将其代码移植到C ++。因此,它的表现比它的前任更差。与MuPDF相比,Poppler似乎有更多的功能,但作为回报,代码要复杂得多。

为了您的目的,MuPDF应该足够了。您可以将apps/中提供的示例代码中的一个简单应用程序混合在一起,从而在不依赖外部应用程序的情况下提取所需的所有信息。

答案 3 :(得分:0)

我认为看PHP's PDFLib将是一个非常好的起点。如果向下滚动,您将看到大量用户发布的解决方案,用于将PDF转换为HTML或PDF转换为文本。转换后,一个相对简单的匹配函数可以提取标记的TOC项目并将它们放入一个数组中,然后您可以随意操作。

This StackOverflow post还有更多解决方案。

希望这有帮助。