提取pdf目录的方法
理论知识:http://stackoverflow.com/questions/4643489/how-do-i-retrieve-a-page-number-or-page-reference-for-an-outline-destination-in
原理就是:通过CGPDFDocumentGetCatalog方法可以获取pdf的元信息,这是一个类似Dictionary的结构,而目录信息就放在里面,需要自己解析出来。
在这里:https://github.com/below/PDF-Voyeur,有一个人写的开源项目,可以查看pdf的元信息,而我也是根据他的代码来找出pdf的目录的。
比如这本书:
用PDF-Voyeur打开之后看到的是这样的:
/Outlines这个节点代表的就是目录,点开Outlines之后会看到/First和/Last,这两个就是第一个和最后一个目录
而/First下面又包含/Next,所有的目录就像链表一样这样串联起来的。
在目录的节点下面可以看到title,就是目录的名字,但是要找到跳转的页数就不容易了。根据本文第一个链接里面的回答,目录索引的方式有3种(仅我所知道的,我相信肯定还有另外的方式):
用/Dest来索引,Dest是一个array,这时候/Dest下面第一个对象就是page的对象。跟节点下面的pages对象包含的就是所有的page对象,代表每一页,把/Dest下面的page跟所有的page对比,用==判断,就可以找出页码。需要注意的是pages有的时候下面不直接包含page对象,而是像子目录一样包含了很多层级,需要判断节点的type是pages还是page。
用/Dest索引,但是Dest是一个name,这时候需要在根节点下面的/Dests里面找到对应名字的节点,然后从里面找到page对象,再用类型1里面的方法来找到页数
用/A来索引,这种情况跟第一个类似,只要在/D下面找到page对象就好了
Voyeur程序下载:Voyeur。(打开没有主界面,需要从菜单File来打开一个pdf文件)
Demo:https://github.com/phaibin/PDFContents
原文链接:http://phaibin.tk/2012/01/06/ti-qu-pdfmu-lu-de-fang-fa
提取pdf目录的方法相关推荐
- python自动化提取pdf表格_[Python] 自动化办公 多种提取PDF图片的方法
转载请注明:陈熹 chenx6542@foxmail.com (简书号:半为花间酒) 若公众号内转载请联系公众号:早起Python 这篇文章能学到的主要内容: 基于 fitz 库和正则搜索提取图片 基 ...
- 三种方法,用Python轻松提取PDF中的全部图片
作者 | 陈熹.刘早起 来源 | 早起Python 头图 | 下载于视觉中国 有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用 ...
- 三种方法,Python轻松提取PDF中全部图片
有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用Python也可以轻松搞定! 今天就跟大家系统分享几种Python提取 PDF ...
- PDFBox提取PDF信息
PDFBox提取PDF信息 gitee https://gitee.com/Grantr/the-encapsulation-of-pdfbox github https://github.com/G ...
- 实用脚本!Python 提取 PDF 指定内容生成新文件!
很多时候,我们并不会预知希望提取的页号,而是希望将包含指定内容的页面提取合并为新PDF,本文就以两个真实需求为例进行讲解. 01 需求描述 数据是一份有286页的上市公司公开年报PDF,大致如下 现在 ...
- 超级实用案例,Python 提取 PDF 指定内容生成新PDF
很多时候,我们并不会预知希望提取的页号,而是希望将包含指定内容的页面提取合并为新PDF,本文就以两个真实需求为例进行讲解. [注]资料.代码.技术交流,文末获取 01 需求描述 数据是一份有286页的 ...
- PDF文件页面可以怎么提取 PDF页面提取方法
说起PDF格式我们大概都知道,它作为我们常用的文档格式之一.我们平常将一些重要的文件保存为PDF的格式,但有时候我们对PDF文件里的页面进行提取这可能大部分人都不会,在这里我教给大家一个提取PDF文件 ...
- python tabula 使用方法_Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- 3个方法提取PDF文件里的图片
PDF文件可以保护文档内容不容易被更改,但也因为这样,有一些需求无法进行操作.比如PDF文件里的图片,不能通过另存为保存下来. 那如果想要提取PDF文件里的图片要如何操作呢?下面分享三个方法给大家. ...
- 提取pdf文件中文字的两种方法
如今,在我们的工作与学习中已经不是单单使用word.Excel等格式文件了,pdf格式的文件已经被广泛地运用到我们的办公室中.大家都知道pdf文件是不可直接编辑与修改的,使用起来有些不便.那么当我们需 ...
最新文章
- AI手语主播通过朱广权魔鬼面试,残影级手速无惧贯口,今已正式上岗助力冰雪盛会...
- 华为云发布全新DevOps实践,大幅提升交付效率
- 北大核刊最新版2020目录_最新版CSSCI来源期刊目录及增减变化!
- Java代码中常见技术债务处理之Exception
- 反射_Class对象功能_获取Method
- 在gitee上创建自己的仓库步骤
- java编程思想怎么样_读完java编程思想后的思考?
- 运算符重载——关系运算符重载
- 小程序优化的20中策略
- mybatis map里面传对象_关于 MyBatis,我死磕了 10 种超好用的写法
- 解析字符串获取路径_node学习--path 路径模块
- Eclipse 下用Maven构建ssh框架web工程
- 华为手机一直android,华为手机内存不够用?这5个文件夹常清理,可以腾出近10个G内存...
- python求平面n个两两间距离_任意两平面求夹角|Python练习系列[11]
- 假如现在你有30分钟,你会做什么?
- 每天五分钟机器学习:如何计算模型的假阳性率和真阳性率?
- Python-玩转数据-python网络编程
- 北京新生儿医保办理指南
- Arduino I2C任意更换SDA SCL GPIO引脚
- 新概念2 课文和单词(9)
热门文章
- 湖南计算机考试题库,湖南省计算机等级考试编程题题库之十六
- 基于标准的多媒体视频对讲系统
- Less入门以及一些前端面试题
- 李忠汇编语言-初学-第九章详解
- 由iconfont引起的svg、ttf、woff、woff2图标的研究及转换(svgs2fonts)
- win10重置网络命令_重置网络:Win10重置网络的技巧
- Antd 表格样式修改
- 计算机无法安装hp网络打印机,hp打印机驱动安装失败怎么办 hp打印机驱动安装失败的解决办法...
- Vue中Swiper以及vue-awesome-swiper的安装和问题
- mysql查询时 全外連接_MySQL数据库左外连接、右外连接、全外连接