如果一个PDF文件页数较多,导致体积较大,可以将其拆分成几个部分,以方便阅读。那么如何拆分?今天继续分享使用Python编写程序来完成PDF文件的批量拆分。
这里采用按固定页数进行拆分的方式。例如,假设按每份5页进行拆分,那么一个27页的PDF文件会被拆分成6份(27/5=5.4≈6),第1~5份均为5页,第6份为2页。仍然使用PyPDF2模块来拆分PDF文件。以下为完整程序:
代码语言:javascript复制from pathlib import Path
from PyPDF2 import PdfFileReader, PdfFileWriter
def split_pdf_file(src, size):
in_dir = Path(src)
all_pdf_file = list(in_dir.glob('*.pdf'))
for pdf in all_pdf_file:
pdf_file_reader = PdfFileReader(str(pdf))
pages = pdf_file_reader.getNumPages()
if pages <= size:
# 页数小于等于要拆分的数size,不进行拆分
continue
# 计算拆分数
count = pages // size 1
for number in range(count):
start = size * number
if number != count - 1:
end = start size - 1
else:
end = count - 1
pdf_file_writer = PdfFileWriter()
for pn in range(start, end 1):
pdf_file_writer.addPage(pdf_file_reader.getPage(pn))
pt_name = f'{pdf.stem}_第{number 1}部分.pdf'
pt_file = src / pt_name
with open(pt_file, 'wb') as f:
pdf_file_writer.write(f)
拆分函数,需要两个参数,一个为PDF文件目录src,一个为拆分页数size,也就是多少页文件拆分为一个文件。程序运行后,会把文件目录下所有满足条件的PDF文件,进行拆分,也可以理解为文件批量拆分。