python分割單頁(yè)pdf

思維導(dǎo)圖導(dǎo)出的pdf為超長(zhǎng)單頁(yè),打印時(shí)需要打印到多張A4紙上拼接起來(lái),但是打印店老板不知怎么操作,于是自己分割成多頁(yè)的pdf

  1. 先試了導(dǎo)出成長(zhǎng)圖,然后按照網(wǎng)上的教程用windows畫圖打開(kāi)后通過(guò)打印的方式導(dǎo)出成pdf,這個(gè)方案是導(dǎo)出的pdf不夠清晰,文字有黑色陰影
  2. 后來(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'))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容