[Python]合併多個 PDF 文件

閱讀時間約 3 分鐘

有時候總是會需要將兩個PDF檔或多個來做合併。

在 Python 中,您可以使用 PyPDF2PyPDF4 等庫來合併多個 PDF 文件。

以下是使用 PyPDF2 的範例步驟:

我利用word另存兩個pdf來做示範:

raw-image

完成合併

raw-image



1. 安裝 PyPDF2

如果還未安裝,您可以執行以下命令安裝:

pip install PyPDF2

2. 合併 PDF 文件的範例程式碼

from PyPDF2 import PdfMerger

def merge_pdfs(pdf_list, output_pdf):
# 初始化合併器
merger = PdfMerger()

# 逐一加入 PDF 文件
for pdf in pdf_list:
merger.append(pdf)

# 輸出合併後的 PDF
merger.write(output_pdf)
merger.close()
print(f"PDFs 已合併完成,輸出為:{output_pdf}")

# PDF 文件列表
pdf_files = [r"D:\python\pdf\1.pdf", r"D:\python\pdf\2.pdf"]

# 合併後的輸出文件
output_file = r"D:\python\pdf\merged.pdf"

merge_pdfs(pdf_files, output_file)


範例解釋

  1. PdfMerger
    • 用於將多個 PDF 合併為一個文件。
  2. append(pdf)
    • 將單個 PDF 添加到合併器中。
  3. write(output_pdf)
    • 寫出合併後的 PDF 文件。
  4. pdf_list
    • 您可以在這裡指定需要合併的 PDF 文件名列表。

注意事項

  1. 確保 PDF 文件路徑正確。
  2. 如果文件名包含中文,記得用 r"path/to/file.pdf" 的格式處理路徑。
  3. 如果需要處理大量 PDF 文件,也可以考慮使用 os.listdir() 自動讀取指定資料夾下的所有 PDF 文件。
avatar-img
128會員
213內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
subprocess.run() 是 Python 3.5 之後引入的一個簡單且強大的函數,用來執行系統命令並等待命令完成。它是 subprocess 模組的高階 API,封裝了低階的 Popen(),提供了更簡便的方式來執行命令、捕獲輸出、處理錯誤等操作。
OpenCV 支援讀取和保存 TIFF(Tagged Image File Format)檔案,但對於合併多張圖片成為多頁的 TIFF 檔案,OpenCV 沒有的這功能。 可以使用 Pillow 庫(Python Imaging Library, PIL 的分支)來實現。
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
呈上次使用logging來撰寫日誌,利用類別包裝的方式,可實現多個日誌紀錄器,但發現這樣就失去它原先,可以回傳是誰呼叫他並記錄行數的功能。 [Python]使用logging創建兩個以上的日誌紀錄 若開啟函式名稱、行數及訊息的功能,就會像這樣,幾乎都是記錄到,我定義中類別的函式
subprocess.run() 是 Python 3.5 之後引入的一個簡單且強大的函數,用來執行系統命令並等待命令完成。它是 subprocess 模組的高階 API,封裝了低階的 Popen(),提供了更簡便的方式來執行命令、捕獲輸出、處理錯誤等操作。
OpenCV 支援讀取和保存 TIFF(Tagged Image File Format)檔案,但對於合併多張圖片成為多頁的 TIFF 檔案,OpenCV 沒有的這功能。 可以使用 Pillow 庫(Python Imaging Library, PIL 的分支)來實現。
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
呈上次使用logging來撰寫日誌,利用類別包裝的方式,可實現多個日誌紀錄器,但發現這樣就失去它原先,可以回傳是誰呼叫他並記錄行數的功能。 [Python]使用logging創建兩個以上的日誌紀錄 若開啟函式名稱、行數及訊息的功能,就會像這樣,幾乎都是記錄到,我定義中類別的函式
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Zotero是免費的書目管理軟體,本文介紹如何在多臺電腦上使用Zotero的同步功能,利用其自動同步功能以及利用Google Drive或One Drive的免費空間儲存PDF檔案。同時分享了對使用雲端硬碟空間存儲PDF檔案的經驗,以及Zotero同步功能的設定方法。希望對使用者有所幫助。
Thumbnail
本文介紹了使用PyMuPDF,AWS Lambda和Docker將PDF文件轉換為圖像的高效方法。同時提到了在執行過程中可能會遇到的部分問題和解決方法。
Thumbnail
當你需要在 Python 中執行多個任務,但又不希望它們相互阻塞時,可以使用 threading 模組。 threading 模組允許你在單個程序中創建多個執行緒,這些執行緒可以同時運行,從而實現並行執行多個任務的效果。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
關於多執行緒/多行程的使用方式 在Python 3.2版本之後加入了「concurrent.futures」啟動平行任務, 它可以更好的讓我們管理多執行緒/多行程的應用場景,讓我們在面對這種併發問題時可以不必害怕, 用一個非常簡單的方式就能夠處裡, 底下我們將為您展示一段程式碼: imp
Thumbnail
本文將介紹如何在 Python 中讀取和寫入文本文件,以及如何處理文件操作過程中可能發生的異常,透過具體的程式碼範例來說明這些概念,讓你能夠清楚的理解並運用在實際的程式設計中。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Zotero是免費的書目管理軟體,本文介紹如何在多臺電腦上使用Zotero的同步功能,利用其自動同步功能以及利用Google Drive或One Drive的免費空間儲存PDF檔案。同時分享了對使用雲端硬碟空間存儲PDF檔案的經驗,以及Zotero同步功能的設定方法。希望對使用者有所幫助。
Thumbnail
本文介紹了使用PyMuPDF,AWS Lambda和Docker將PDF文件轉換為圖像的高效方法。同時提到了在執行過程中可能會遇到的部分問題和解決方法。
Thumbnail
當你需要在 Python 中執行多個任務,但又不希望它們相互阻塞時,可以使用 threading 模組。 threading 模組允許你在單個程序中創建多個執行緒,這些執行緒可以同時運行,從而實現並行執行多個任務的效果。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
關於多執行緒/多行程的使用方式 在Python 3.2版本之後加入了「concurrent.futures」啟動平行任務, 它可以更好的讓我們管理多執行緒/多行程的應用場景,讓我們在面對這種併發問題時可以不必害怕, 用一個非常簡單的方式就能夠處裡, 底下我們將為您展示一段程式碼: imp
Thumbnail
本文將介紹如何在 Python 中讀取和寫入文本文件,以及如何處理文件操作過程中可能發生的異常,透過具體的程式碼範例來說明這些概念,讓你能夠清楚的理解並運用在實際的程式設計中。