Python处理pdf文件库 - PyPDF2详解
工作中可能会涉及处理pdf文件,PyPDF2就是这样一个库, 使用它可以轻松的处理pdf文件,它提供了读、写、分割、合并、文件转换等多种操作。官方地址:http://mstamy2.github.io/PyPDF2/
安装
- RPM式系统(Redhat、CentOS)
pip install pypdf2
- DEB式系统(Debian、Ubuntu)以下任一
pip install pypdf2
apt install python-pypdf2
- Windows
pip install pypdf2
使用
PyPDF2 包含了 PdfFileReader PdfFileMerger PageObject PdfFileWriter 四个常用的主要 Class。
简单读写
from PyPDF2 import PdfFileReader, PdfFileWriter
readFile = 'read.pdf'
writeFile = 'write.pdf'
# 获取一个 PdfFileReader 对象
pdfReader = PdfFileReader(open(readFile, 'rb'))
# 获取 PDF 的页数
pageCount = pdfReader.getNumPages()
print(pageCount)
# 返回一个 PageObject
page = pdfReader.getPage(i)
# 获取一个 PdfFileWriter 对象
pdfWriter = PdfFileWriter()
# 将一个 PageObject 加入到 PdfFileWriter 中
pdfWriter.addPage(page)
# 输出到文件中
pdfWriter.write(open(writeFile, 'wb'))
合并分割 PDF
from PyPDF2 import PdfFileReader, PdfFileWriter
def split_pdf(infn, outfn):pdf_output = PdfFileWriter()pdf_input = PdfFileReader(open(infn, 'rb'))# 获取 pdf 共用多少页page_count = pdf_input.getNumPages()print(page_count)# 将 pdf 第五页之后的页面,输出到一个新的文件for i in range(5, page_count):pdf_output.addPage(pdf_input.getPage(i))pdf_output.write(open(outfn, 'wb'))
def merge_pdf(infnList, outfn):pdf_output = PdfFileWriter()for infn in infnList:pdf_input = PdfFileReader(open(infn, 'rb'))# 获取 pdf 共用多少页page_count = pdf_input.getNumPages()print(page_count)for i in range(page_count):pdf_output.addPage(pdf_input.getPage(i))pdf_output.write(open(outfn, 'wb'))
if __name__ == '__main__':infn = 'infn.pdf'outfn = 'outfn.pdf'split_pdf(infn, outfn)
其他命令
如果是要修改一个已有的 pdf 文件,可以将 reader 的页面添加到 writer 中:
pdfWriter.appendPagesFromReader(reader)
添加书签:
pdfWriter.addBookmark(title, pagenum, parent=parent)
Python处理pdf文件库 - PyPDF2详解相关推荐
- python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
- python编程入门与案例详解-quot;Python小屋”免费资源汇总(截至2018年11月28日)...
原标题:"Python小屋"免费资源汇总(截至2018年11月28日) 为方便广大Python爱好者查阅和学习,特整理汇总微信公众号"Python小屋"开通29 ...
- python的爱心曲线公式_六行python代码的爱心曲线详解
前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...
- python编程语法大全-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...
- python编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
- python编程if语法-Python编程入门基础语法详解经典
原标题:Python编程入门基础语法详解经典 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_number = ...
- python编程语法-Python编程入门——基础语法详解(经典)
今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...
- 用python绘制漂亮的图形-用python绘制图形的实例详解
1.环境系统:windows10 python版本:python3.6.1 使用的库:matplotlib,numpy 2.numpy库产生随机数几种方法import numpy as npnumpy ...
最新文章
- 带你了解DDoS攻击的原理,让你轻松学会DDoS攻击原理及防护措施
- Linux 中yum的配置
- IO多路复用之poll总结
- 使用composer下载依赖包下载失败的解决方法
- 罗永浩将重返高科技行业创业 将涉足AR/VR/MR领域
- python123测验答案第二周温度转换二_python123练习题
- CSS3动画框架 Animate.css
- Linux下查看系统版本号信息的方法(转)
- estore简版商城问题总结
- excel如何把顺序倒过来_Excel中表格进行颠倒顺序的操作方法
- Java-事务的传播特性和隔离级别
- mac 下搭建paly framework体验(环境搭建)
- 面试官:IoC 和 DI 有什么区别?
- 最好的文学素材网站有哪些?
- 路的选择与人生的哲思──读《未选择的路》
- ios -静默方式发送邮件
- shell脚本进入指定目录
- SQL Server 2008 R2 企业版 MSDN原版
- RabbitVCS:ubuntu下svn可视化工具的安装和使用
- D-ID生成式人工智能视频合成技术,将原创视频内容变得唾手可得
热门文章
- Spring boot集成spring-boot-starter-data-jpa环境搭建
- nodeJs配置相关以及JSON.parse
- nginx 实现mysql的负载均衡【转】
- iOS 10 的一个重要更新-开发 iMessage 的第三方插件
- android 高清壁纸设置慢
- JavaScript程序开发(十五)—函数的属性和方法
- MFC 问题集(4)CListCtrl
- python paramiko sftp_python paramiko (ssh,sftp)
- logrotate测试_使用 logrotate 对 apache/nginx 日志切割
- migo获取header sap_Adjust Stock(MI06, MI07, MIGO)