[转]PyPDF2详解

工作中可能会涉及处理pdf文件,PyPDF2就是这样一个库, 使用它可以轻松的处理pdf文件,它提供了读、写、分割、合并、文件转换等多种操作。官方地址:http://mstamy2.github.io/PyPDF2/

安装

1. RPM式系统(Redhat、CentOS)

1
pip  install  pypdf2

2. DEB式系统(Debian、Ubuntu)以下任一

1
2
pip  install  pypdf2
apt  install  python-pypdf2

3. Windows

1
pip  install  pypdf2

使用

PyPDF2 包含了 PdfFileReader PdfFileMerger PageObject PdfFileWriter 四个常用的主要 Class。

简单读写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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  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  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)


---------------------
作者:py小蟒蛇
来源:CNBLOGS
原文:https://www.cnblogs.com/pyxiaomangshe/p/7918839.html
版权声明:本文为作者原创文章,转载请附上博文链接!

扫描二维码关注公众号,回复: 9272006 查看本文章
 

猜你喜欢

转载自www.cnblogs.com/vilogy/p/12333726.html