使用Python實現(xiàn)在PDF中添加、導(dǎo)入、復(fù)制、移動與刪除頁面
在日常辦公和自動化任務(wù)中,我們經(jīng)常需要對 PDF 文件進行頁面級的編輯,例如插入空白頁、復(fù)制現(xiàn)有頁、導(dǎo)入其他文件的頁面或刪除不需要的頁面。使用 Python,你可以輕松實現(xiàn)這些操作,而無需依賴 Adobe Acrobat。
本文將通過幾個常見場景,演示如何使用 Python 操作 PDF 頁面,包括:
- 添加空白頁
- 導(dǎo)入其他 PDF 的頁面
- 刪除特定頁面
- 在文檔內(nèi)部復(fù)制頁面
- 移動頁面到新位置
所有示例均基于 Free Spire.PDF for Python,你可以通過以下命令安裝該庫:
pip install spire.pdf.free
1. 向 PDF 添加空白頁
from spire.pdf.common import *
from spire.pdf import *
document = PdfDocument()
document.LoadFromFile("G:/Documents/Sample53.pdf")
# 在文檔末尾添加一個新頁面
new_page = document.Pages.Add(document.Pages.get_Item(0).Size) # 使用與第一頁相同的大小
# 可選:在新頁面上繪制文本內(nèi)容
# text_element = PdfTextWidget("這是一個新添加的空白頁面", PdfFont(PdfFontFamily.Helvetica, 12))
# text_element.Draw(new_page, PointF(50, 50))
document.SaveToFile("output_add_blank_page.pdf", FileFormat.PDF)
document.Close()
print("空白頁面已添加。")說明:
document.Pages.Add()會在文檔末尾添加一個新頁面,并返回該頁面對象。- 若希望在指定位置插入頁面,可使用
document.Pages.Insert(index)。 - 通過
PdfTextWidget可在新頁面上繪制文本內(nèi)容,用于添加標題或標注。
結(jié)果展示:

2. 從另一個 PDF 導(dǎo)入頁面
from spire.pdf.common import *
from spire.pdf import *
# 加載目標和源PDF文檔
target_document = PdfDocument()
target_document.LoadFromFile("G:/Documents/Sample53.pdf")
source_document = PdfDocument()
source_document.LoadFromFile("G:/Documents/Sample89.pdf")
# 導(dǎo)入源文檔的第一頁到目標文檔的末尾
target_document.InsertPage(source_document, 0)
# 若要導(dǎo)入所有頁面,可使用循環(huán)
# for i in range(source_document.Pages.Count):
# target_document.InsertPage(source_document, i)
target_document.SaveToFile("output_import_page.pdf", FileFormat.PDF)
target_document.Close()
source_document.Close()
print("頁面已從源文檔導(dǎo)入。")說明:
InsertPage(source_document, page_index)用于將指定頁從一個 PDF 插入到另一個 PDF。- 當(dāng)源文檔包含多頁時,可遍歷其頁面進行批量導(dǎo)入。
- 這種方法非常適合將多個文件合并成一個完整文檔。
結(jié)果展示:

3. 刪除 PDF 中的頁面
from spire.pdf.common import *
from spire.pdf import *
document = PdfDocument()
document.LoadFromFile("input.pdf")
# 刪除第二頁(索引從0開始)
if document.Pages.Count > 1:
document.Pages.RemoveAt(1)
document.SaveToFile("output_delete_page.pdf", FileFormat.PDF)
document.Close()
print("頁面已刪除。")說明:
RemoveAt(index)可刪除指定索引的頁面。- 索引從
0開始,即第一頁為0,第二頁為1。 - 刪除頁面后應(yīng)重新保存文件以應(yīng)用更改。
此方法常用于去除封面頁、空白頁或廣告頁等不必要內(nèi)容。
結(jié)果展示:

4. 在文檔內(nèi)部復(fù)制頁面
from spire.pdf.common import *
from spire.pdf import *
document = PdfDocument()
document.LoadFromFile("G:/Documents/Sample53.pdf")
# 復(fù)制第一頁(索引為0)
if document.Pages.Count > 0:
document.InsertPage(document, 0)
document.SaveToFile("output_copy_page_within_doc.pdf", FileFormat.PDF)
document.Close()
print("頁面已在文檔內(nèi)復(fù)制。")說明:
InsertPage(document, page_index)可將同一文檔的指定頁復(fù)制到文檔末尾。- 這對于創(chuàng)建模板頁或重復(fù)頁的報表場景非常實用。
- 若要插入到特定位置,可使用帶插入位置參數(shù)的重載方法。
結(jié)果展示:

5. 移動頁面到新的位置
from spire.pdf.common import *
from spire.pdf import *
document = PdfDocument()
document.LoadFromFile("G:/Documents/Sample53.pdf")
if document.Pages.Count > 1:
temp_path = "temp_page.pdf"
# Step 1: 導(dǎo)出要移動的頁面為單獨PDF
temp_doc = PdfDocument()
temp_doc.InsertPage(document, 1, 0)
temp_doc.SaveToFile(temp_path, FileFormat.PDF)
temp_doc.Close()
# Step 2: 刪除原文檔中的該頁
document.Pages.RemoveAt(1)
# Step 3: 重新加載導(dǎo)出的頁面
imported_doc = PdfDocument()
imported_doc.LoadFromFile(temp_path)
# Step 4: 插入到新位置(例如第一頁前)
document.InsertPage(imported_doc, 0, 0)
document.SaveToFile("output_move_page.pdf", FileFormat.PDF)
document.Close()
print("頁面已成功移動。")說明:
- Spire.PDF 暫不支持直接移動頁面,因此可通過“導(dǎo)出 + 刪除 + 導(dǎo)入”實現(xiàn)。
- 使用
InsertPage(imported_doc, target_index, source_index)可以將頁面插入到任意位置。 - 此方法靈活可靠,尤其適用于需要調(diào)整頁面順序的情況。
結(jié)果展示:

6. 關(guān)鍵類與方法總結(jié)
| 操作類型 | 方法或?qū)傩?/th> | 說明 |
|---|---|---|
| 添加空白頁 | Pages.Add() | 在文檔末尾創(chuàng)建新頁面,可指定頁面尺寸 |
| 插入指定位置 | Pages.Insert(index) | 在指定索引位置插入空白頁 |
| 導(dǎo)入頁面 | InsertPage(source_doc, page_index) | 將其他 PDF 文件中的頁面導(dǎo)入到當(dāng)前文檔 |
| 刪除頁面 | Pages.RemoveAt(index) | 刪除指定頁面 |
| 復(fù)制頁面 | InsertPage(document, page_index) | 將當(dāng)前文檔的某頁復(fù)制到文檔末尾 |
| 移動頁面 | “導(dǎo)出→刪除→插入”組合 | 實現(xiàn)頁面位置調(diào)整 |
7. 總結(jié)
通過以上示例可以看到,Spire.PDF for Python 為 PDF 頁面級操作提供了簡潔而強大的接口。無論是添加、復(fù)制、導(dǎo)入還是刪除頁面,都可以通過幾行代碼完成。
這種編程式處理方式特別適合批量文檔編輯、自動報表生成或文件結(jié)構(gòu)整理等場景。無需安裝 Acrobat,就能輕松構(gòu)建自己的 PDF 管理工具。
以上就是使用Python實現(xiàn)在PDF中添加、導(dǎo)入、復(fù)制、移動與刪除頁面的詳細內(nèi)容,更多關(guān)于Python操作PDF頁面的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
示例詳解Python3 or Python2 兩者之間的差異
這篇文章主要介紹了Python3 or Python2?示例詳解兩者之間的差異,在本文中給大家介紹的非常詳細,需要的朋友可以參考下2018-08-08
python scrapy框架中Request對象和Response對象的介紹
本文介紹了python基礎(chǔ)之scrapy框架中Request對象和Response對象的介紹,Request對象主要是用來請求數(shù)據(jù),爬取一頁的數(shù)據(jù)重新發(fā)送一個請求的時候調(diào)用,Response對象一般是由scrapy給你自動構(gòu)建的,因此開發(fā)者不需要關(guān)心如何創(chuàng)建Response對象,下面來一起來了解更多內(nèi)容吧2022-02-02
Python OpenCV實現(xiàn)識別信用卡號教程詳解
本文將介紹如何通過 OpenCV 和 Python 使用模板匹配來執(zhí)行光學(xué)字符識別 (OCR),再應(yīng)用我們的模板匹配 OCR 方法來識別信用卡類型以及 16 位信用卡數(shù)字。代碼具有一定價值,感興趣的童鞋可以了解一下2021-11-11

