最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實(shí)現(xiàn)在PDF中添加、導(dǎo)入、復(fù)制、移動(dòng)與刪除頁(yè)面

 更新時(shí)間:2025年11月23日 15:49:43   作者:大丸子  
在日常辦公和自動(dòng)化任務(wù)中,我們經(jīng)常需要對(duì) PDF 文件進(jìn)行頁(yè)面級(jí)的編輯,使用 Python,你可以輕松實(shí)現(xiàn)這些操作,而無(wú)需依賴 Adobe Acrobat,本文將通過幾個(gè)常見場(chǎng)景,演示如何使用 Python 操作 PDF 頁(yè)面,需要的朋友可以參考下

在日常辦公和自動(dòng)化任務(wù)中,我們經(jīng)常需要對(duì) PDF 文件進(jìn)行頁(yè)面級(jí)的編輯,例如插入空白頁(yè)、復(fù)制現(xiàn)有頁(yè)、導(dǎo)入其他文件的頁(yè)面或刪除不需要的頁(yè)面。使用 Python,你可以輕松實(shí)現(xiàn)這些操作,而無(wú)需依賴 Adobe Acrobat。

本文將通過幾個(gè)常見場(chǎng)景,演示如何使用 Python 操作 PDF 頁(yè)面,包括:

  • 添加空白頁(yè)
  • 導(dǎo)入其他 PDF 的頁(yè)面
  • 刪除特定頁(yè)面
  • 在文檔內(nèi)部復(fù)制頁(yè)面
  • 移動(dòng)頁(yè)面到新位置

所有示例均基于 Free Spire.PDF for Python,你可以通過以下命令安裝該庫(kù):

pip install spire.pdf.free

1. 向 PDF 添加空白頁(yè)

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

document = PdfDocument()
document.LoadFromFile("G:/Documents/Sample53.pdf")

# 在文檔末尾添加一個(gè)新頁(yè)面
new_page = document.Pages.Add(document.Pages.get_Item(0).Size)  # 使用與第一頁(yè)相同的大小

# 可選:在新頁(yè)面上繪制文本內(nèi)容
# text_element = PdfTextWidget("這是一個(gè)新添加的空白頁(yè)面", PdfFont(PdfFontFamily.Helvetica, 12))
# text_element.Draw(new_page, PointF(50, 50))

document.SaveToFile("output_add_blank_page.pdf", FileFormat.PDF)
document.Close()
print("空白頁(yè)面已添加。")

說明

  • document.Pages.Add() 會(huì)在文檔末尾添加一個(gè)新頁(yè)面,并返回該頁(yè)面對(duì)象。
  • 若希望在指定位置插入頁(yè)面,可使用 document.Pages.Insert(index)。
  • 通過 PdfTextWidget 可在新頁(yè)面上繪制文本內(nèi)容,用于添加標(biāo)題或標(biāo)注。

結(jié)果展示:

2. 從另一個(gè) PDF 導(dǎo)入頁(yè)面

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

# 加載目標(biāo)和源PDF文檔
target_document = PdfDocument()
target_document.LoadFromFile("G:/Documents/Sample53.pdf")

source_document = PdfDocument()
source_document.LoadFromFile("G:/Documents/Sample89.pdf")

# 導(dǎo)入源文檔的第一頁(yè)到目標(biāo)文檔的末尾
target_document.InsertPage(source_document, 0)

# 若要導(dǎo)入所有頁(yè)面,可使用循環(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("頁(yè)面已從源文檔導(dǎo)入。")

說明

  • InsertPage(source_document, page_index) 用于將指定頁(yè)從一個(gè) PDF 插入到另一個(gè) PDF。
  • 當(dāng)源文檔包含多頁(yè)時(shí),可遍歷其頁(yè)面進(jìn)行批量導(dǎo)入。
  • 這種方法非常適合將多個(gè)文件合并成一個(gè)完整文檔。

結(jié)果展示:

3. 刪除 PDF 中的頁(yè)面

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

document = PdfDocument()
document.LoadFromFile("input.pdf")

# 刪除第二頁(yè)(索引從0開始)
if document.Pages.Count > 1:
    document.Pages.RemoveAt(1)

document.SaveToFile("output_delete_page.pdf", FileFormat.PDF)
document.Close()
print("頁(yè)面已刪除。")

說明

  • RemoveAt(index) 可刪除指定索引的頁(yè)面。
  • 索引從 0 開始,即第一頁(yè)為 0,第二頁(yè)為 1
  • 刪除頁(yè)面后應(yīng)重新保存文件以應(yīng)用更改。

此方法常用于去除封面頁(yè)、空白頁(yè)或廣告頁(yè)等不必要內(nèi)容。

結(jié)果展示:

4. 在文檔內(nèi)部復(fù)制頁(yè)面

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

document = PdfDocument()
document.LoadFromFile("G:/Documents/Sample53.pdf")

# 復(fù)制第一頁(yè)(索引為0)
if document.Pages.Count > 0:
    document.InsertPage(document, 0)

document.SaveToFile("output_copy_page_within_doc.pdf", FileFormat.PDF)
document.Close()
print("頁(yè)面已在文檔內(nèi)復(fù)制。")

說明

  • InsertPage(document, page_index) 可將同一文檔的指定頁(yè)復(fù)制到文檔末尾。
  • 這對(duì)于創(chuàng)建模板頁(yè)或重復(fù)頁(yè)的報(bào)表場(chǎng)景非常實(shí)用。
  • 若要插入到特定位置,可使用帶插入位置參數(shù)的重載方法。

結(jié)果展示:

5. 移動(dòng)頁(yè)面到新的位置

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)出要移動(dòng)的頁(yè)面為單獨(dú)PDF
    temp_doc = PdfDocument()
    temp_doc.InsertPage(document, 1, 0)
    temp_doc.SaveToFile(temp_path, FileFormat.PDF)
    temp_doc.Close()

    # Step 2: 刪除原文檔中的該頁(yè)
    document.Pages.RemoveAt(1)

    # Step 3: 重新加載導(dǎo)出的頁(yè)面
    imported_doc = PdfDocument()
    imported_doc.LoadFromFile(temp_path)

    # Step 4: 插入到新位置(例如第一頁(yè)前)
    document.InsertPage(imported_doc, 0, 0)

document.SaveToFile("output_move_page.pdf", FileFormat.PDF)
document.Close()
print("頁(yè)面已成功移動(dòng)。")

說明

  • Spire.PDF 暫不支持直接移動(dòng)頁(yè)面,因此可通過“導(dǎo)出 + 刪除 + 導(dǎo)入”實(shí)現(xiàn)。
  • 使用 InsertPage(imported_doc, target_index, source_index) 可以將頁(yè)面插入到任意位置。
  • 此方法靈活可靠,尤其適用于需要調(diào)整頁(yè)面順序的情況。

結(jié)果展示:

6. 關(guān)鍵類與方法總結(jié)

操作類型方法或?qū)傩?/th>說明
添加空白頁(yè)Pages.Add()在文檔末尾創(chuàng)建新頁(yè)面,可指定頁(yè)面尺寸
插入指定位置Pages.Insert(index)在指定索引位置插入空白頁(yè)
導(dǎo)入頁(yè)面InsertPage(source_doc, page_index)將其他 PDF 文件中的頁(yè)面導(dǎo)入到當(dāng)前文檔
刪除頁(yè)面Pages.RemoveAt(index)刪除指定頁(yè)面
復(fù)制頁(yè)面InsertPage(document, page_index)將當(dāng)前文檔的某頁(yè)復(fù)制到文檔末尾
移動(dòng)頁(yè)面“導(dǎo)出→刪除→插入”組合實(shí)現(xiàn)頁(yè)面位置調(diào)整

7. 總結(jié)

通過以上示例可以看到,Spire.PDF for Python 為 PDF 頁(yè)面級(jí)操作提供了簡(jiǎn)潔而強(qiáng)大的接口。無(wú)論是添加、復(fù)制、導(dǎo)入還是刪除頁(yè)面,都可以通過幾行代碼完成。

這種編程式處理方式特別適合批量文檔編輯、自動(dòng)報(bào)表生成或文件結(jié)構(gòu)整理等場(chǎng)景。無(wú)需安裝 Acrobat,就能輕松構(gòu)建自己的 PDF 管理工具。

以上就是使用Python實(shí)現(xiàn)在PDF中添加、導(dǎo)入、復(fù)制、移動(dòng)與刪除頁(yè)面的詳細(xì)內(nèi)容,更多關(guān)于Python操作PDF頁(yè)面的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用python批量化音樂文件格式轉(zhuǎn)換的實(shí)例

    使用python批量化音樂文件格式轉(zhuǎn)換的實(shí)例

    今天小編就為大家分享一篇使用python批量化音樂文件格式轉(zhuǎn)換的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-01-01
  • 使用Python實(shí)現(xiàn)將中文語(yǔ)音翻譯成英語(yǔ)音頻功能

    使用Python實(shí)現(xiàn)將中文語(yǔ)音翻譯成英語(yǔ)音頻功能

    本文介紹了中文語(yǔ)音翻譯成英語(yǔ)音頻的實(shí)現(xiàn)方法,主要分為三個(gè)步驟:語(yǔ)音識(shí)別(將中文語(yǔ)音轉(zhuǎn)為文本)、文本翻譯(中文轉(zhuǎn)英文)和語(yǔ)音合成(英文文本轉(zhuǎn)音頻),文章詳細(xì)說明了注意事項(xiàng),需要的朋友可以參考下
    2025-08-08
  • Python?字典中鍵映射多個(gè)值的問題解決

    Python?字典中鍵映射多個(gè)值的問題解決

    本文主要介紹了在Python中實(shí)現(xiàn)一個(gè)字典multidict中鍵可以對(duì)應(yīng)多個(gè)值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • TensorFlow實(shí)現(xiàn)模型斷點(diǎn)訓(xùn)練,checkpoint模型載入方式

    TensorFlow實(shí)現(xiàn)模型斷點(diǎn)訓(xùn)練,checkpoint模型載入方式

    這篇文章主要介紹了TensorFlow實(shí)現(xiàn)模型斷點(diǎn)訓(xùn)練,checkpoint模型載入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-05-05
  • python有證書的加密解密實(shí)現(xiàn)方法

    python有證書的加密解密實(shí)現(xiàn)方法

    這篇文章主要介紹了python有證書的加密解密實(shí)現(xiàn)方法,采用了M2Crypto組件進(jìn)行相關(guān)的加密解密操作,包含了詳細(xì)的完整實(shí)現(xiàn)過程,需要的朋友可以參考下
    2014-11-11
  • Python自定義命令行參數(shù)選項(xiàng)和解析器

    Python自定義命令行參數(shù)選項(xiàng)和解析器

    這篇文章主要介紹了Python自定義命令行參數(shù)選項(xiàng)和解析器,本文主要使用的方法為argparse.ArgumentParser(),此模塊可以讓人輕松編寫用戶友好的命令行接口,程序定義它需要的參數(shù),需要的朋友可以參考下
    2023-07-07
  • python實(shí)現(xiàn)win桌面通知、出現(xiàn)彈窗(三種方式)

    python實(shí)現(xiàn)win桌面通知、出現(xiàn)彈窗(三種方式)

    本文主要介紹了python實(shí)現(xiàn)win桌面通知、出現(xiàn)彈窗(三種方式),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • Python 序列化和反序列化庫(kù) MarshMallow 的用法實(shí)例代碼

    Python 序列化和反序列化庫(kù) MarshMallow 的用法實(shí)例代碼

    marshmallow(Object serialization and deserialization, lightweight and fluffy.)用于對(duì)對(duì)象進(jìn)行序列化和反序列化,并同步進(jìn)行數(shù)據(jù)驗(yàn)證。這篇文章主要介紹了Python 序列化和反序列化庫(kù) MarshMallow 的用法實(shí)例代碼,需要的朋友可以參考下
    2020-02-02
  • Python正則抓取新聞標(biāo)題和鏈接的方法示例

    Python正則抓取新聞標(biāo)題和鏈接的方法示例

    這篇文章主要介紹了Python正則抓取新聞標(biāo)題和鏈接的方法,結(jié)合具體實(shí)例形式分析了Python正則匹配頁(yè)面元素及文件寫入相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • python多線程并發(fā)及測(cè)試框架案例

    python多線程并發(fā)及測(cè)試框架案例

    這篇文章主要介紹了python多線程并發(fā)及測(cè)試框架案例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

二连浩特市| 黎平县| 济源市| 锡林浩特市| 莆田市| 阿拉善盟| 高雄市| 苍溪县| 安远县| 舟曲县| 南雄市| 广宗县| 乌兰察布市| 洛宁县| 衡阳县| 花莲市| 南和县| 徐州市| 进贤县| 新兴县| 柳州市| 南丹县| 高安市| 万盛区| 彩票| 河西区| 靖州| 渭南市| 易门县| 若尔盖县| 六枝特区| 蒙山县| 宁国市| 隆林| 蕲春县| 文安县| 比如县| 开远市| 永吉县| 韶山市| 静乐县|