Python 操作 PDF
1. 相关介绍
Python 操作 PDF 会用到两个库,分别是:PyPDF2 和 pdfplumber
其中 PyPDF2 可以更好的读取、写入、分割、合并PDF文件,而 pdfplumber 可以更好的读取 PDF 文件中内容和提取 PDF 中的表格
对应的官网分别是:
PyPDF2:https://pythonhosted.org/PyPDF2/
pdfplumber:https://github.com/jsvine/pdfplumber
由于这两个库都不是 Python 的标准库,所以在使用之前都需要单独安装
win+r 后输入 cmd 打开 command 窗口,依次输入如下命令进行安装:
pip install PyPDF2
pip install pdfplumber
安装完成后显示 success 则表示安装成功
2. 批量拆分
import os
os.chdir(r'D:\Datawhale\python学习') #改变当前工作目录
os.getcwd()
'D:\\Datawhale\\python学习'
在拆分的过程中,可以手动设置间隔,例如:每5页保存成一个小的 PDF 文件
拆分的代码如下:
#拆分pdf
from PyPDF2 import PdfFileReader
from PyPDF2 import PdfFileWriter
def split_pdf(filename, filepath, save_dirpath, step=5):
"""
拆分PDF为多个小的PDF文件,
@param filename:文件名
@param filepath:文件路径
@param save_dirpath:保存小的PDF的文件路径
@param step: 每step间隔的页面生成一个文件,例如step=5,表示0-4页、5-9页...为一个文件
@return:
"""
if not os.path.exists(save_dirpath):
os.mkdir(save_dirpath)
pdf_reader = PdfFileReader(filepath)
# 读取每一页的数据
pages = pdf_reader.getNumPages()
for page in range(0, pages, step):
pdf_writer = PdfFileWriter()
# 拆分pdf,每 step 页的拆分为一个文件
for index in range(page, page+step):
if index < pages:
pdf_writer.addPage(pdf_reader.getPage(index))
# 保存拆分后的小文件
save_path = os.path.join(save_dirpath, filename+str(int(page/step)+1)+'.pdf')
print(save_path)
with open(save_path, "wb") as out:
pdf_writer.write(out)
print("文件已成功拆分,保存路径为:"+save_dirpath)
split_pdf('易方达.pdf',r'D:\Datawhale\python学习\易方达.pdf',r'D:\Datawhale\python学习\文件' )
D:\Datawhale\python学习\文件\易方达.pdf1.pdf
D:\Datawhale\python学习\文件\易方达.pdf2.pdf
D:\Datawhale\python学习\文件\易方达.pdf3.pdf
D:\Datawhale\python学习\文件\易方达.pdf4.pdf
D:\Datawhale\python学习\文件\易方达.pdf5.pdf
D:\Datawhale\python学习\文件\易方达.pdf6.pdf
D:\Datawhale\python学习\文件\易方达.pdf7.pdf
D:\Datawhale\python学习\文件\易方达.pdf8.pdf
D:\Datawhale\python学习\文件\易方达.pdf9.pdf
D:\Datawhale\python学习\文件\易方达.pdf10.pdf
文件已成功拆分,保存路径为:D:\Datawhale\python学习\文件
import os
os.getcwd()
'C:\\Users\\晴天\\Desktop\\python学习'