目录
1、准备工作
本文使用PyPDF4完成,需要安装相关的库。
2、应用场景
一页PDF含有多页小的PDF规则排列,如这样是4小页同页的PDF:
最后将其分割成4个单独的页面,按顺序放到同一个PDF中。
3、代码实现
以下代码实现将4小页同页的PDF分页:
import PyPDF4
# 打开包含 4 个小页的 pdf 文件
def pdf_divide(input,output):
with open(input, 'rb') as file:
reader = PyPDF4.PdfFileReader(file)
# 获取总页数
total_pages = reader.getNumPages()
# 创建一个新的 pdf writer
writer = PyPDF4.PdfFileWriter()
# 对每一页执行以下步骤
for i in range(total_pages):
# 获取当前页的对象
page = reader.getPage(i)
# 将当前页的内容分成4个小页
for j in range(4):
# 计算小页的坐标
x1, y1, x2, y2 = (j % 2) * page.mediaBox.getWidth() / 2, (1 - j // 2) * page.mediaBox.getHeight() / 2, (
j % 2 + 1) * page.mediaBox.getWidth() / 2, (2 - j // 2) * page.mediaBox.getHeight() / 2
# 创建一个新的 pdf 页面
new_page = PyPDF4.pdf.PageObject.createBlankPage(None, x2 - x1, y2 - y1)
# 将小页的内容复制到新页中
new_page.mergeTranslatedPage(page, -x1,-y1)
# 将新页面添加到写入器中
writer.addPage(new_page)
# 将所有的小页写入一个新的 pdf 文件
with open(output, 'wb') as output_file:
writer.write(output_file)
input = "input.pdf" #输入需要分页的PDF文件地址
output = "output.pdf" #分页完成后输出地址
pdf_divide(input,output)