python分割单页pdf

思维导图导出的pdf为超长单页,打印时需要打印到多张A4纸上拼接起来,但是打印店老板不知怎么操作,于是自己分割成多页的pdf

  1. 先试了导出成长图,然后按照网上的教程用windows画图打开后通过打印的方式导出成pdf,这个方案是导出的pdf不够清晰,文字有黑色阴影
  2. 后来试了将长图拖到Chrome中,通过Chrome的打印导出成pdf,结果打印出来也是不清晰
    看来先导出成图片再导出成pdf的方式就是不清晰,于是发现wps上有分割pdf的功能,但是需要vip才能使用,于是自己用python分割
from PyPDF4 import PdfFileReader, PdfFileWriter
import math

input_file_path= '1.pdf'
output_file_path= '2.pdf'

pdf_input = PdfFileReader(open(input_file_path, 'rb'))
pdf_output = PdfFileWriter()

page0 = pdf_input.getPage(0)
width = float(page0.mediaBox.getWidth())
height = float(page0.mediaBox.getHeight())

# 这里是A4横版打印,按A4比例来计算每页的高度,如果是竖版则是page_height = width * 297 / 210
page_height = width * 210 / 297

new_page_count = math.ceil(height / page_height)

for i in range(new_page_count):
    pdf_input = PdfFileReader(open(input_file_path, 'rb'))
    new_page = pdf_input.getPage(0)

    y = page_height * i

    new_page.mediaBox.lowerLeft = (0, height - page_height * (i + 1))
    new_page.mediaBox.lowerRight = (width, height - page_height * (i + 1))
    new_page.mediaBox.upperLeft = (0, height - y)
    new_page.mediaBox.upperRight = (width, height - y)
    pdf_output.addPage(new_page)

pdf_output.write(open(output_file_path, 'wb'))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容