思维导图导出的pdf为超长单页,打印时需要打印到多张A4纸上拼接起来,但是打印店老板不知怎么操作,于是自己分割成多页的pdf
- 先试了导出成长图,然后按照网上的教程用windows画图打开后通过打印的方式导出成pdf,这个方案是导出的pdf不够清晰,文字有黑色阴影
- 后来试了将长图拖到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'))