使用PyPDF2模块处理PDF文件通用方法技巧

使用PyPDF2模块处理PDF文件通用方法技巧基本概念:PDF和Word文档是二进制文件,除了文本之外还保存字体,颜色,布局等信息。处理PDF文件,使用PyPDF2模块,PyPDF2不能从PDF文档中提取图像、图表或其他媒体,但可提取文本,作为字符串返回。  读取PDF文件步骤:首先以读二进制模式打开PDF文件,然后将打开文件File对象传递给PyPDF2.PdfFileReader()函数,例如: …

大家好,又见面了,我是你们的朋友全栈君。

  1. 基本概念:PDF和Word文档是二进制文件,除了文本之外还保存字体,颜色,布局等信息。
  2. 处理PDF文件,使用PyPDF2模块,PyPDF2不能从PDF文档中提取图像、图表或其他媒体,但可提取文本,作为字符串返回。
       读取PDF文件步骤: 首先以读二进制模式打开PDF文件,然后将打开文件File对象传递给PyPDF2.PdfFileReader()函数,例如:
       pdf=open(r’C:/Users/fmz/Desktop/rotate.pdf’,‘rb’)
       pdfreader=PyPDF2.PdfFileReader(pdf)
       读取的文档的总页数保存在PdfFileReader对象的numPages属性中,使用pdfreader.numPages可得总页数
       从一页中提取文本,需要先取得Page对象,使用pdfreader.getPage(传入页码顺序,从0开始)。取得Page对象后调用它的
       extractText()方法,即Page.extractText()则返回该页文本的字符串(文本提取并不完美,有时会缺失一些文本)
  3. 解密PDF :所有的PdfFileReader对象都有一个isEncrypted属性,如果加密返回True否则返回False。在文件用正确的口令
       解密之前,尝试调用函数来读取文件会返回错误。解密PDF使用pdfreader.decrypt(‘口令字符串’)函数,提供正确的口令返回1
       否则返回0。
  4. 创建PDF:使用PdfFileWriter对象创建PDF例如pdfwriter=PyPDF2.PdfFileWriter(),但PyPDF2模块不可以利用其将任何文
       本写入PDF,该对象仅限从其他PDF中拷贝页面、旋转页面、重叠页面以及加密文件。PyPDF2模块不允许直接编辑PDF,必须
       创建一个新的PDF,其一般步骤为:
       1) 打开一个或多个已有的PDF得到PdfFileReader对象;
       2) 创建一个新的PdfFileReader对象;
       3) 将页面从PdfFileReader对象拷贝到PdfFileWriter对象中;
       4) 最后利用PdfFileWriter对象写入输出的PDF。
       实际生成文件需调用PdfFileWriter对象的write()方法。write()方法接受一个普通的以写二进制模式?打开的File对象。
  5. 拷贝页面:得到PdfFileReader对象后,在其上调用getPage()取得Page对象,然后将Page对象传递给PdfFileWriter对象的
        addPage()方法,例如pdfwriter.addPage(page对象),在拷贝页面完成后,向PdfFileWriter对象的write()方法传入一个File
        对象,例如使用下列语句即可实现新PDF的写入。
         pdfout=open(r’combinedminutes.pdf’,‘wb’)
         pdfwriter.write(pdfout)
         pdfout.close()
  6. 旋转页面:对Page对象使用rotateClockwise()(顺时针旋转)和rotateCounterClockwise()(逆时针旋转)方法可使PDF文
        档页面旋转90度的整数倍,向这些方法传入90,180,270就可以了。例如Page.rotateClockwise(90)将页面顺时针旋转90度。
  7. 叠加页面:PyPDF2模块可将一页的内容叠加到另一页上实现在页面上添加公司标志,时间戳或水印等。对Page对象调用
       mergePage(叠加的Page对象)方法可实现page的叠加,例如使用FirstPage.mergePage(pdfreader.getPage(0))语句可实现
        将pdfreader对象的第一页叠加到FirstPage页上。
  8. 加密PDF:在调用write()方法保存文件之前,对PdfFileWriter对象调用encrypt(‘口令字符串’)方法可实现对文档的加密。PDF
       文档可以有一个用户口令(允许查看该PDF)和一个拥有者口令(允许设置打印、注释、提取文本和其他功能的许可)。用户
        口令和拥有者口令分别是encrypt()的第一个和第二个参数,如果只传入一个字符串,那它将作为两个口令。例如:
        pdfwriter.encrypt(‘swordfish’)
        open(r’combinedminutes.pdf’,‘wb’)
        pdfwriter.write(pdfout)
        pdfout.close()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152406.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 自然语言处理简介(1)—- 服务梳理与传统汉语分词

    1.Nlp技术体系简介1.1基础技术1.2Nlp核心技术1.3NlP+(高端技术)2.知名NLP服务系统简介2.1汉语分词系统ICTCLAS2.2哈工大语言云(LanguageTechnologyPlatform,LTP)2.3AmazonComprehend2.4阿里云NLP2.5腾讯云NLP2.6百度语言处理基础技术2.6.1功能丰富且…

  • iOS 开发 需要的版本管理工具,UI图,bug管理工具等

    iOS 开发 需要的版本管理工具,UI图,bug管理工具等

  • SQL Server2008安装详细教程[通俗易懂]

    SQL Server2008安装详细教程[通俗易懂]1.将光盘文件解压成文件夹格式,(解压过程比较慢,请耐心等待);2.打开开始菜单的设置;3.打开设置后,点击更新和安全,然后进入;4.在Windows安全中心,将其关闭(注意我这里已经关闭了);5.然后再到安装包文件夹目录,找到setup.exe文件,右击,以管理员身份运行;6.右击运行后,会出来这个页面(如果没有出现这个页面,请直接跳转至第14步),然后点击下载并安装此功能,进入下一步;7.进入下一个页面后,你会发现它会出来一个正在下载所需的文件的页面,然后等待就行;8

  • ch340转485电路图_ch340c芯片手册

    ch340转485电路图_ch340c芯片手册CH340可以实现USB转TTL串口电路,但是CH340芯片上不能直接出来RS485电平信号,所以要通过电平转换芯片来实现。由于RS485一般用半双工通信,所以需要一个使能信号来控制RS485收发器的方向。从支持RS485的功能来讲CH340系列分为有TNOW引脚(如CH340B、CH340T和CH340E等)和无TNOW引脚(如CH340C/CH340K/CH340N等)两种。没有TNOW引脚的CH340实现RS485信号收发需要外加一个反相器,原理图如下:有TNOW引脚的CH340B可以省去反相

  • Java Class类简介

    Java Class类简介
    一,class类有什么用?
    class类的实例表示java应用运行时的类(classansenum)或接口(interfaceandannotation)(每个java类运行时都在JVM里表现为一个class对象,可通过类名.class,类型.getClass(),Class.forName(“类名”)等方法获取class对象)。数组同样也被映射为为class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象。基本类型boolean,byte,ch

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号