我在SWFTools和XPDF的帮助下将pdf提取到images / swf和文本中。我在PDF脚本中运行这些文件。
但是现在我想进一步尝试从PDF中获取TOC是否可以提取此信息?
答案 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
答案 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还有更多解决方案。
希望这有帮助。