PyPDF2是python的处理PDF文件的基本操作介绍
1说明
1。1PyPDF2:使用它可以轻松的处理pdf文件,它提供了读,割,合并,文件转换等多种操作。
1。2PyPDF2可以对PDF文件进行加密,解密,目前已经更新到PyPDF3版本,本文基于PyPDF2进行介绍。
1。3环境:python3。8,deepinlinux操作系统,微软vscode编辑器。
2安装pipinstallPyPDF2pip3。8installPyPDF2本机安装
3相关网址:https:pythonhosted。orgPyPDF2https:pypi。orgprojectPyPDF21。26。0https:github。commstamy2PyPDF2
4PDF文件的合并,mergepdf。py代码如下:pdf文件合并mergefromPyPDF2importPdfFileMergermergerPdfFileMerger()将3个pdf文件合并,注意路径和目录input1open(homexgjDesktopPyPDF21。pdf,rb)input2open(homexgjDesktopPyPDF22。pdf,rb)input3open(homexgjDesktopPyPDF23。pdf,rb)默认作为第一张,即position1,pages(0,1)代表1。pdf的第一张,如果有很多张,注意取第几张到第几张merger。append(fileobjinput1,pages(0,1))与上面相同merger。merge(position2,fileobjinput2,pages(0,1))appendentireinput3documenttotheendoftheoutputdocument将3。pdf添加到上述的后面merger。append(input3)WritetoanoutputPDFdocument,生成新的pdfoutputopen(homexgjDesktopPyPDF2documentoutput。pdf,wb)merger。write(output)
5拆分pdf文件,splitpdf。py代码fromPyPDF2importPdfFileReader,PdfFileWriterdefsplit(path,nameofsplit):pdfPdfFileReader(path)forpageinrange(pdf。getNumPages()):pdfwriterPdfFileWriter()pdfwriter。addPage(pdf。getPage(page))拆分在根目录下outputf{nameofsplit}{page}。pdf指定目录下outputfhomexgjDesktopPyPDF2{nameofsplit}{page}。pdfwithopen(output,wb)asoutputpdf:pdfwriter。write(outputpdf)ifnamemain:要拆分的pdf文件及目录pathhomexgjDesktopPyPDF24。pdf注意nameofsplitNOsplit(path,NO)
6pdf文件加密,jiamipdf。py代码fromPyPDF2importPdfFileWriter,PdfFileReaderdefaddencryption(inputpdf,outputpdf,password):pdfwriterPdfFileWriter()pdfreaderPdfFileReader(inputpdf)forpageinrange(pdfreader。getNumPages()):pdfwriter。addPage(pdfreader。getPage(page))pdfwriter。encrypt(userpwdpassword,ownerpwdNone,use128bitTrue)withopen(outputpdf,wb)asfh:pdfwriter。write(fh)ifnamemain:input是需要加密的pdf文件和目录,output是生成加密的原pdf的新pdf文件自定义密码addencryption(inputpdfhomexgjDesktopPyPDF21。pdf,outputpdfhomexgjDesktopPyPDF21m。pdf,password123456)
7解密pdf文件
7。1jiemipdf。py代码importos指定目录,即更改根目录的方法os。chdir(homexgjDesktopPyPDF2)fromPyPDF2importPdfFileReader,PdfFileWriterpdfreaderPdfFileReader(1m。pdf)知道密码情况下,注意是解密,不是破解密码pdfreader。decrypt(123456)pdfwriterPdfFileWriter()forpageinrange(pdfreader。getNumPages()):pdfwriter。addPage(pdfreader。getPage(page))withopen(encrypted。pdf,wb)asout:pdfwriter。write(out)
7。2注意细节:适合批量解密pdf文件,并且自己知道密码。
7。3注意代码简洁,导入os,提前设路径,顺带复习python的os模块的路径设置。
8pdf加水印:watermarkpdf。py代码fromPyPDF2importPdfFileReader,PdfFileWriter安装:pipinstallreportlab,下次单独将这个模块fromreportlab。lib。unitsimportcmfromreportlab。pdfgenimportcanvasimportreportlab。pdfbase。ttfonts创建水印信息defcreatewatermark(content):生成一个单独的水印pdf,注意路径和目录filenamehomexgjDesktopPyPDF2mark。pdfccanvas。Canvas(filename,pagesize(30cm,30cm))移动坐标原点(坐标系左下为(0,0))c。translate(4cm,0cm)设置字体格式与大小,中文需要加载能够显示中文的字体,否则就会乱码,注意字体路径如果是中文就是trytry:reportlab。pdfbase。pdfmetrics。registerFont(reportlab。pdfbase。ttfonts。TTFont(yahei,hwfs。ttf))c。setFont(yahei,50)如果是英文就是exceptexcept:默认字体,只能够显示英文c。setFont(Helvetica,30)这一行多次一举,注释掉contentIlovepython旋转角度度,坐标系被旋转c。rotate(30)指定填充颜色c。setFillColorRGB(0,0,0)设置透明度,1为不透明c。setFillAlpha(0。05)画几个文本,注意坐标系旋转的影响c。drawString(0cm,3cm,content)关闭并保存pdf文件c。save()returnfilename插入水印defaddwatermark(pdffilein,pdffilemark,pdffileout):pdfoutputPdfFileWriter()inputstreamopen(pdffilein,rb)pdfinputPdfFileReader(inputstream,strictFalse)获取PDF文件的页数pageNumpdfinput。getNumPages()读入水印pdf文件pdfwatermarkPdfFileReader(open(pdffilemark,rb),strictFalse)给每一页打水印foriinrange(pageNum):pagepdfinput。getPage(i)page。mergePage(pdfwatermark。getPage(0))page。compressContentStreams()压缩内容pdfoutput。addPage(page)pdfoutput。write(open(pdffileout,wb))ifnamemain:需要加水印的pdf文件和目录pdffileinhomexgjDesktopPyPDF2123。pdf生成新的加过水印的pdf文件pdffileouthomexgjDesktopPyPDF2watermark。pdf设置加水印的文字内容:英文pdffilemarkcreatewatermark(rIlovepython)设置加水印的文字内容:中文pdffilemarkcreatewatermark(r水印)addwatermark(pdffilein,pdffilemark,pdffileout)
自己整理,分享出来,已经亲测,欢迎转发和收藏,自己以后拿来就用,希望大家希望。
散称白酒靠谱吗?如何区别纯粮酒和勾兑酒?教你3招辨别每个城市的菜市场里,总会有一两家专门卖散称白酒的门店或粮油店,面对现在白酒品牌愈发增多,白酒单价越卖越贵,这些只卖10块、十来块一斤的散称白酒,反而更受百姓和一些外来打工朋友欢……
书评笔记塑造生活小时候喜欢语文课,碰到好词好句就会拿个小本本摘抄下来。一晃眼长大了,买书越来越多,看书越来越快,脑子里留下的却越来越少。在这个流行快餐文化的时代,能够静下心来写上几句已经实属不……
现在1000元还能买到什么精品文玩?快来一起盘点一下每年的CPI都在增加,货币贬值钱不值钱,真是一年不如一年!但是文玩可是在物价里属于那种大多数都会涨价的。大多数文玩属于可保值和增值的,特别是那些精品文玩,价格可是不停地上涨!都……
有稿酬,蓉城文学杂志征稿啦广大读者朋友们:《蓉城》是由桂阳县文联主办的机关刊物。经广泛征求意见,在发扬原有办刊优势的基础上,进一步转变办刊风格,拓宽办刊视野,我们拟对刊物进行改版调整。根据新的办刊……
官方也是00后?中国队yyds成奥运评语常用词,不懂你就落后奥运冠军杨倩yyds,中国队yyds,最近大家是不是被这个词洗脑了!很多观看奥运的80、90后表示一脸懵,是我跟不上时代的潮流了吗?2021年,新的时代来临,00后居然也……
他汀类药物应用注意事项高血脂可以引起全身血管动脉粥样硬化,血管动脉硬化又可引起心肌梗死、脑卒中等一系列心脑血管意外事件,而且高血脂早期一般不会引起明显的躯体症状,因此很少引起足够的重视,其实对于高血……
防盗纱窗百科防盗纱窗防盗效果好吗防盗纱窗知识大全目前防盗纱窗正日益走红,很多小区家庭,尤其是高层住宅家庭更愿意安装防盗纱窗。防盗纱窗是指将防盗窗和隐形纱网两者科学有机地组合起来的具有防盗功能的纱窗,一般以不锈钢丝为材质,具有……
为什么每天吃沙拉还是瘦不下来?很多人在夏天都没有什么胃口,而且有些人为了减脂和饮食方便,会选择沙拉这种食物来帮助减脂,其实沙拉不能说完全不健康,也不能说完全健康。主要还是要看你怎么吃,那么怎么吃沙拉才……
书写自己的故事人生就是故事。每个人都在书写着属于自己的故事。或平平淡淡,或波澜起伏,或轰轰烈烈,或曲折离奇,或回味无穷,或引人入胜,或千奇百怪,或悲或喜,或苦涩或甜蜜。每个人的故事都不……
夏装儿童背带裙裁剪图分享,做衣服剩下的小布头就够做啦夏装儿童背带裙裁剪图分享,做衣服剩下的小布头就够做啦平常自己在家做衣服,难免会剩下些零散的布头,留着没啥用,丢掉又可惜。今天给大家分享的这个款式就可以用剩下的小布头给宝宝……
家长留存六年送礼记录,孩子毕业后立马举报老师,调查后却有反转在近几年,家长和老师的关系变得逐渐敏感。家长们开始全方位找老师的错误,老师们也开始战战兢兢地上班,毕竟现在家长们手中有一个制裁老师且屡试不爽的手段,那就是举报。如今……
陪读日记61初中家长能做到的陪伴很简单,稳定情绪,闭嘴昨天娃的学校开了线上家长会。语数外历史老师都出来讲话了。都很实在接地气,听完了后觉得信任老师,跟着老师走,就没问题了,很期待期末考试。娃小学的时候,语文老师不止一次对我说……