Python PyPDF2模块安装使用解析
这篇文章主要介绍了PythonPyPDF2模块安装使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
PyPDF2模块主要的功能是分割或合并PDF文件,裁剪或转换PDF文件中的页面。
0、安装PyPDF2的模块
pipinstallPyPDF2
1、常用的函数
#!/usr/bin/envpython #-*-coding:utf-8-*- #@Time:2020/1/1513:38 #@Author:suk #@File:pyxl.py #@Software:PyCharm importPyPDF2 reader=PyPDF2.PdfFileReader(open('linux.pdf','rb')) print(reader.getNumPages())#获取pdf总页数 print(reader.isEncrypted)#判断是否有加密 page=reader.getPage(4)#获取第四页 print(page.extractText())#获取第四页的内容 print(reader.getDocumentInfo())#获取PDF元信息,即创建时间,作者,标题等
2、读取PDF文件,取指定页数,写入到硬盘上的示例
#!/usr/bin/envpython #-*-coding:utf-8-*- importPyPDF2 reader=PyPDF2.PdfFileReader(open('linux.pdf','rb')) output=PyPDF2.PdfFileWriter() output.addPage(reader.getPage(1)) output.addPage(reader.getPage(4)) output.addPage(reader.getPage(5)) print(output.getNumPages())#获取写入页的总页数 output.encrypt('123456') outputStream=open('PyPDF2-output.pdf','wb') output.write(outputStream) outputStream.close()
3、读取PDF某一页,旋转180度后,写入到新的PDF文件的示例
#!/usr/bin/envpython #-*-coding:utf-8-*- importPyPDF2 reader=PyPDF2.PdfFileReader(open('linux.pdf','rb')) page=reader.getPage(0)#获取第0页 page.rotateClockwise(180)#旋转180度 writer=PyPDF2.PdfFileWriter()#创建PDF写入的对象 writer.addPage(page) outputStream=open('rotate-page-test.pdf','wb')#创建一个PDF文件 writer.write(outputStream)#往文件写入PDF数据 outputStream.close()#写入流
4、PDF增加水印的示例
注意:水印模板可以利用WORD文档写好文字,转为PDF即可
#!/usr/bin/envpython #-*-coding:utf-8-*- importPyPDF2 reader=PyPDF2.PdfFileReader(open('linux.pdf','rb'))#增加水印的原文件 watermark=PyPDF2.PdfFileReader(open('水印模板.pdf','rb'))#水印的模板 writer=PyPDF2.PdfFileWriter()#写入PDF的对象 foriinrange(reader.getNumPages()): page=reader.getPage(i) page.mergePage(watermark.getPage(0))#将原文件与水印模板合并 writer.addPage(page)#增加到写入对象中 outputStream=open('watermark-test-linux.pdf','wb')#打开一个写入硬盘的文件对象 writer.write(outputStream)#将合并好的数据,写入硬盘中 outputStream.close()#关闭文件句柄
测试效果
5、合并多个指定的PDF文件的示例
#!/usr/bin/envpython #-*-coding:utf-8-*- fromPyPDF2importPdfFileMerger merger=PdfFileMerger()#创建一个合并的对象 input1=open('01PDF.pdf','rb') input2=open('02PDF.pdf','rb') input3=open('03PDF.pdf','rb') merger.append(fileobj=input1,pages=(0,3))#合并文件1的0到3页 merger.merge(position=2,fileobj=input2,pages=(0,1))#合并文件2的0到1页 merger.append(fileobj=input3)#合并文件的所有页 output=open('document-output.pdf','wb')#保存硬盘上 merger.write(output)#写入到硬盘上 output.close()#关闭文件句柄
6、批量合并指定目录的PDF文件的示例
#!/usr/bin/envpython #-*-coding:utf-8-*- importPyPDF2 importos importglob defget_all_pdf_files(path): """获取指定目录的所有pdf文件名""" all_pdfs=glob.glob('{0}/*.pdf'.format(path)) all_pdfs.sort(key=str.lower)#排序 returnall_pdfs defmain(): path=os.getcwd() all_pdfs=get_all_pdf_files(path) ifnotall_pdfs: raiseSystemExit('没有可用的PDF类型文件') merger=PyPDF2.PdfFileMerger() first_obj=open(all_pdfs[0],'rb')#打开第一个PDF文件 merger.append(first_obj)#增加到合并的对象中 file_objs=[] forpdfinall_pdfs[1:]:#读取所有的文件对象 file_objs.append(open(pdf,'rb')) forfile_objinfile_objs: reader=PyPDF2.PdfFileReader(file_obj) merger.append(fileobj=file_obj,pages=(1,reader.getNumPages())) outputStream=open('merge-pdfs.pdf','wb') merger.write(outputStream) outputStream.close() forfile_objinfile_objs:#批量关闭文件句柄 file_obj.close() if__name__=='__main__': main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。