思維導(dǎo)圖導(dǎo)出的pdf為超長(zhǎng)單頁(yè),打印時(shí)需要打印到多張A4紙上拼接起來(lái),但是打印店老板不知怎么操作,于是自己分割成多頁(yè)的pdf
- 先試了導(dǎo)出成長(zhǎng)圖,然后按照網(wǎng)上的教程用windows畫圖打開(kāi)后通過(guò)打印的方式導(dǎo)出成pdf,這個(gè)方案是導(dǎo)出的pdf不夠清晰,文字有黑色陰影
- 后來(lái)試了將長(zhǎng)圖拖到Chrome中,通過(guò)Chrome的打印導(dǎo)出成pdf,結(jié)果打印出來(lái)也是不清晰
看來(lái)先導(dǎo)出成圖片再導(dǎo)出成pdf的方式就是不清晰,于是發(fā)現(xiàn)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比例來(lái)計(jì)算每頁(yè)的高度,如果是豎版則是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'))