利用python将A3幅面pdf切割成A4幅面学校老师发的试卷让打印,但是pdf文件是A3纸大小,家里的打印机只能打印A4纸,如果直接打印成A4纸,会比较小,看不清,于是咨询deepseek,给出了一下python代码,可以将A3幅面的pdf文件变成A4幅面的pdf文件,页数多了一倍。
from PyPDF2 import PdfReader, PdfWriterimport copyreader = PdfReader("输入.pdf")writer = PdfWriter()for page in reader.pages: # 获取原始页面尺寸 original_box = page.mediabox width = original_box.width # 总宽度,例如A3横向宽度 height = original_box.height # 总高度 # --- 创建并添加左半部分 --- page_left = copy.deepcopy(page) # 关键:创建原页面的独立副本 # 裁剪出左半边:右上角坐标设为(宽度的一半, 高度) page_left.mediabox.upper_right = (width / 2, height) writer.add_page(page_left) # 添加左半页 # --- 创建并添加右半部分 --- page_right = copy.deepcopy(page) # 关键:再创建一个独立副本 # 裁剪出右半边:左下角坐标设为(宽度的一半, 0) page_right.mediabox.lower_left = (width / 2, 0) writer.add_page(page_right) # 添加右半页# 保存输出文件with open("输出_修正后.pdf", "wb") as output_file: writer.write(output_file)print(f"处理完成!输入{len(reader.pages)}页,输出{len(writer.pages)}页。")