网上虽然有在线的pdf合并和拆分工具,但是当pdf比较大的时候,就比较麻烦,如果不想借助其他付费软件的话,就只能自己动手了…

pypdf2

pypdf2是Pure-Python构建的PDF工具箱。它具有以下功能:

  • 提取文档信息(标题,作者等)
  • 逐页拆分文档
  • 逐页合并文档
  • 裁剪页面
  • 将多个页面合并为一个页面
  • 加密和解密PDF文件
  • 和更多!

通过成为纯Python,它可以在任何Python平台上运行,而无需依赖外部库。它也可以完全在StringIO对象而不是文件流上工作,从而允许在内存中进行PDF操作。因此,它是用于管理或操作PDF的网站的有用工具。

安装

pip3 install pypdf2

API

官方文档详细介绍了其中的类和方法.

下面是一些简单的使用说明

# 导入读写pdf模块
from PyPDF2 import PdfFileReader, PdfFileWriter

# 读pdf,file_name是读取的pdf名
pdf = PdfFileReader(open(file_name, 'rb'))
# 获取pdf的页数
page_counts = pdf.getNumPages()
# 获取pdf第i页,从0开始计数
pdf_page = pdf.getPage(i)

# 写pdf
pdf_write = PdfFileWriter()
# 写入到pdf中,pdf_page是pdf的某一页
pdf_write.addPage(pdf_page)
# outfn_name为输出文件名
pdf_write.write(open(outfn_name, 'wb'))

实例

以下代码将1.pdf的294页到386页分离出来,存为2.pdf.

from PyPDF2 import PdfFileReader, PdfFileWriter

file_name='1.pdf'
pdf = PdfFileReader(open(file_name, 'rb'))

output='2.pdf'

pdf_write=PdfFileWriter()
for i in range(294,369):
    pdf_write.addPage(pdf.getPage(i))
pdf_write.write(open(output,'wb'))

我很好奇