還在傻傻付費合併 PDF 文件?

原文地址請點擊這裏

@

前言

工作中,用到 PDF 文件的時候,真是太常見了。但你會發現,很多時候,我們需要將幾份 PDF 合併爲一個 PDF 文件,這個時候你往往會去百度,然後打開一個付費的 PDF 合併網站開始合併。

還在傻傻付費合併 PDF 文件?

今天,我給你分享一個一鍵合併 PDF 的辦公自動化方案!還是用我們熟悉的 Python 語言,不過這回我們會調用 PyPDF2 這個模塊。具體如何使用這個模塊,我這裏就不詳細說了,具體看 http://pythonhosted.org/PyPDF2/ 這個官方說明。今天,我們要用到什麼,我就教大傢什麼,畢竟辦公中,你也沒時間去學習那些跟工作沒有什麼關係的東西。

我們的任務

將 1.pdf 和 2.pdf 這兩個文檔合併成 3.pdf。
在這裏插入圖片描述

理清工作流程

做事情之前,你必須要明白你做事情的邏輯,也就是工作流程,這個對於我們解決重複性工作而言,是必須要做的:

  • 讀取 1.pdf 的文件,寫入 3.pdf
  • 讀取 2.pdf 的文件,寫入 3.pdf

看似合併的一個簡單操作,確實不是那麼簡單的合併的。

讓 Python 開幹

導入 PyPDF2 模塊:

from PyPDF2 import PdfFileReader, PdfFileWriter

這兩個方法對應了 pdf 文件的讀取和寫入,其中 PdfFileReader 能讀取文件,PdfFileWriter 可以寫入文件。

注意:讀取必須一頁一頁地讀取並寫入,也就是說不能一下子把整個文件都讀取了再寫入,必須讀取一頁寫入一頁。

幸運的是,我們樣例** 1.PDF 和 2.pdf** 都只有一頁,這裏的提醒是特別給小夥伴準備的,可千萬別跳到坑裏去了。

from PyPDF2 import PdfFileReader, PdfFileWriter

path = r'C:\Users\xxxxxx'
pdf_writer = PdfFileWriter()

for i in range(1, 2):
    pdf_reader = PdfFileReader('E:\demo\{}.pdf'.format(i))
    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))

with open('E:\demo\3.pdf', 'wb') as out:
    pdf_writer.write(out)

細心地你會發現,合併在循環中,但是輸出在循環外,沒錯,這就印證了我們之前說的“讀取一頁寫入一頁”。with 這句話,新建了 3.pdf,並由寫入器的 pdf_writer.write(out) 方法輸出。

尾聲

下一期,我給你科普一下如何讓 Python 幫我們拆分 PDF。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章