Python 如何實現合併 PDF 檔案?

2023-11-13 18:00:43

在處理多個 PDF 檔案時,頻繁地開啟關閉檔案會嚴重影響效率。因此,對於一大堆內容相關的 PDF 檔案,我們可以先將這些 PDF 檔案合併起來再操作,從而提高工作效率。比如,在傳送大量的 PDF 檔案時,在處理同一專案下的多個 PDF 檔案時,或在列印一系列 PDF 檔案時,將檔案合併起來可以減少工作量。本文將分享3種使用 Python 合併 PDF 檔案的實現方法。

 

安裝:

Python中合併PDF需要用到 Spire.PDF for Python 庫。 安裝十分簡單,直接使用以下pip命令即可。或者可以下載後再安裝。

pip install Spire.PDF

 

方法1:通過 MergeFiles () 直接合並 PDF 檔案

MergeFiles(List[str]) 方法可以將一個檔案路徑列表對應的所有 PDF 檔案按列表順序合併為一個 PDF 檔案。程式碼如下:

from spire.pdf.common import *
from spire.pdf import *
import os

# 指定資料夾路徑
folder_path = "G:/檔案/"

# 遍歷資料夾中的檔案並建立檔案路徑列表
pdf_files = []
for file_name in sorted(os.listdir(folder_path)):
    if file_name.endswith(".pdf"):
        file_path = os.path.join(folder_path, file_name)
        pdf_files.append(file_path)

# 合併PDF檔案
pdf = PdfDocument.MergeFiles(pdf_files)

# 儲存結果檔案
pdf.Save("output/合併PDF.pdf", FileFormat.PDF)
pdf.Close()

 

方法2:通過AppendPage() 插入頁面合併 PDF 檔案

AppendPage(PdfDocument) 方法可以在一個 PDF 檔案中插入另一個 PDF 檔案的所有頁面。 具體實現程式碼參考:

from spire.pdf.common import *
from spire.pdf import *

# 遍歷資料夾中的檔案,載入每個PDF檔案PdfDocument物件並列表
folder_path = "G:/檔案/"
pdf_files = []
for file_name in sorted(os.listdir(folder_path)):
    if file_name.endswith(".pdf"):
        file_path = os.path.join(folder_path, file_name)
        pdf_files.append(PdfDocument(file_path))

# 建立一個PdfDocument物件
newPdf = PdfDocument()

# 將載入的PDF檔案的頁面插入到新的PDF檔案中
for pdf in pdf_files:
    newPdf.AppendPage(pdf)

# 儲存新的PDF檔案
newPdf.SaveToFile("output/插入頁面合併PDF.pdf")

 

方法3:合併不同 PDF 檔案的指定頁面

InsertPage (PdfDocument, pageIndex: int) 方法可以將一個 PDF 檔案的指定頁面插入到另一個 PDF 檔案中。我們可以通過這個方法合併不同 PDF 檔案的指定頁面。

from spire.pdf import *
from spire.pdf.common import *

# 建立PDF檔案路徑列表
file1 = "範例1.pdf"
file2 = "範例2.pdf"
file3 = "範例3.pdf"
files = [file1, file2, file3]

# 載入每個PDF檔案並新增到列表中
pdfs = []
for file in files:
    pdfs.append(PdfDocument(file))

# 建立一個PdfDocument物件
newPdf = PdfDocument()

# 將載入的PDF檔案中選擇的頁面插入到新檔案中
newPdf.InsertPage(pdfs[0], 0)
newPdf.InsertPage(pdfs[1], 1)
newPdf.InsertPageRange(pdfs[2], 0, 1)

# 儲存新的PDF檔案
newPdf.SaveToFile("output/合併不同PDF的指定頁面.pdf")

 

以上就是關於如何使用 Spire.PDF for Python 合併 PDF 檔案的操作介紹。大家可自行測試,如有問題歡迎反饋討論。

如果想了解更多此第三方Python庫的功能,可前往 Spire.PDF for Python 中文教學