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

5 種使用Python自動(dòng)化處理PDF的實(shí)用方法介紹

 更新時(shí)間:2025年09月26日 15:12:12   作者:E-iceblue  
自動(dòng)化處理 PDF 文件已成為減少重復(fù)工作、提升工作效率的重要手段,本文將介紹五種實(shí)用方法,從內(nèi)置工具到專業(yè)庫,幫助你在 Python 中實(shí)現(xiàn) PDF 任務(wù)的自動(dòng)化

自動(dòng)化處理 PDF 文件已成為減少重復(fù)工作、提升工作效率的重要手段。對于需要處理報(bào)表、合同或發(fā)票的開發(fā)者來說,手動(dòng)操作往往耗時(shí)且容易出錯(cuò)。Python 因其簡單易用且擁有豐富生態(tài)系統(tǒng),提供了多種庫,使得 PDF 的拆分、合并、提取和生成等操作變得更加便捷。本文將介紹五種實(shí)用方法,從內(nèi)置工具到專業(yè)庫,幫助你在 Python 中實(shí)現(xiàn) PDF 任務(wù)的自動(dòng)化。

使用內(nèi)置庫(os、subprocess)調(diào)用外部工具

在 Python 中,標(biāo)準(zhǔn)庫如 ossubprocess 并不直接支持 PDF 操作,但你仍可以利用它們調(diào)用外部命令行工具,從而完成基本的 PDF 操作,例如合并、拆分或轉(zhuǎn)換文件。下面的示例演示如何借助命令行工具將 PDF 文件轉(zhuǎn)換為 .txt 文檔:

import subprocess
import os

input_path = r"E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf"
output_path = r"E:/Administrator/Python1/output/轉(zhuǎn)為TXT.pdf"

# 調(diào)用命令行工具 pdftotext
subprocess.run(["pdftotext", input_path, output_path])

if os.path.exists(output_path):
    print("文本提取成功:", output_path)

注意:此代碼依賴 Windows 下的第三方命令行工具 Poppler。

使用 PyPDF2 進(jìn)行基本 PDF 操作

在了解了 Python 內(nèi)置庫之后,我們來看最受歡迎的開源 Python PDF 庫之一——PyPDF2。這個(gè)輕量級且廣泛使用的庫,可以方便地完成常見 PDF 操作,如合并多個(gè)文件、拆分文檔、旋轉(zhuǎn)頁面以及提取文本。對于只需進(jìn)行基礎(chǔ) PDF 操作的開發(fā)者來說,它是一個(gè)很好的起點(diǎn),無需依賴繁重的外部工具。

下面的代碼示例展示了如何使用 PyPDF2 拆分 PDF,并將前兩頁保存為新的 PDF 文件:

from PyPDF2 import PdfReader, PdfWriter

input_path = r"E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf"
output_path = r"E:/Administrator/Python1/output/拆分PDF.pdf"

# 創(chuàng)建 PdfReader 對象并讀取源 PDF
reader = PdfReader(input_path)

# 創(chuàng)建 PdfWriter 對象
writer = PdfWriter()

# 拆分 PDF,并將前兩頁添加到 writer
for i in range(2):  
    writer.add_page(reader.pages[i])

# 將拆分后的 PDF 寫入新文件
with open(output_path, "wb") as f:
    writer.write(f)

print("拆分后的 PDF 已生成:", output_path)

以下為拆分后的 PDF 與原文檔的對比預(yù)覽:

使用 pdfplumber 精準(zhǔn)提取文本

PDF 文件通常難以直接編輯,因此許多人希望提取其中的內(nèi)容(如文本或表格)以便在其他場景中復(fù)用。這時(shí) pdfplumber 就非常實(shí)用。它是專門用于文本和表格提取的開源 Python 庫,能夠在保持原有結(jié)構(gòu)的同時(shí)提供高度準(zhǔn)確的提取結(jié)果,非常適合需要可靠數(shù)據(jù)提取的場景。

下面的示例展示如何使用 pdfplumber 從 PDF 中提取文本并輸出到控制臺:

import pdfplumber

input_path = r"/input/AI繪畫的利與弊-圖片版.pdf"

with pdfplumber.open(input_path) as pdf:
    page = pdf.pages[1]
    text = page.extract_text()
    print("第一頁提取的文本:\n", text)

使用 ReportLab 創(chuàng)建和定制 PDF

到目前為止,我們主要關(guān)注的是從現(xiàn)有 PDF 文檔中提取或轉(zhuǎn)換內(nèi)容,或拆分頁面。除了處理已有文件外,許多場景還需要?jiǎng)討B(tài)生成 PDF 文檔,例如自動(dòng)生成報(bào)表、添加水印或插入圖表和圖片。ReportLab 是一個(gè)強(qiáng)大的 Python 庫,允許開發(fā)者從零創(chuàng)建 PDF 文件,并對內(nèi)容和布局進(jìn)行高度定制。借助 ReportLab,你可以輕松生成個(gè)性化 PDF,以滿足各種業(yè)務(wù)或展示需求。

下面的 Python 示例展示如何使用 ReportLab 創(chuàng)建 PDF 文件:

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

output_path = r"/output/生成PDF.pdf"

c = canvas.Canvas(output_path, pagesize=A4)
c.drawString(100, 750, "this is a PDF created using ReportLab.")
c.drawString(100, 730, "You can add text, images and even tables.")
c.showPage()
c.save()

print("新 PDF 已生成:", output_path)

以下為輸出文件預(yù)覽:

使用專業(yè)庫如 Spire.PDF 應(yīng)對高級場景

除了開源庫外,Python 還有商業(yè)選項(xiàng),例如 Spire.PDF for Python,它提供了全面的功能,涵蓋幾乎所有常見的 Adobe Acrobat 操作,如 PDF 加密、數(shù)字簽名和格式轉(zhuǎn)換。同時(shí),它還支持一些 Acrobat 難以處理的高級任務(wù),如批量表單字段處理、生成帶復(fù)雜圖表的動(dòng)態(tài) PDF 以及自動(dòng)化 PDF 報(bào)告創(chuàng)建。對于需要專業(yè)、自動(dòng)化且高度定制的 PDF 處理工作,Spire.PDF 提供了靈活高效的解決方案。

下面通過兩個(gè)代碼示例展示 Spire.PDF 在 Python 中的應(yīng)用。

以下示例演示如何為 PDF 文件添加數(shù)字簽名:

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

# 加載 PDF
doc = PdfDocument()
doc.LoadFromFile("/input/Booklet.pdf")

# 創(chuàng)建簽名生成器
signatureMaker = PdfOrdinarySignatureMaker(doc, "/alice.pfx", "e-iceblue")

# 配置簽名屬性,如簽名者姓名、聯(lián)系方式、位置和簽名原因
signature = signatureMaker.Signature
signature.Name = "Alice"
signature.ContactInfo = "+86 12345678"
signature.Location = "China"
signature.Reason = "Author"

# 創(chuàng)建自定義簽名外觀
appearance = PdfSignatureAppearance(signature)
appearance.NameLabel = "Signer: "
appearance.ContactInfoLabel = "Tel: "
appearance.LocationLabel = "Address:"
appearance.ReasonLabel = "Reason: "
appearance.SignatureImage = PdfImage.FromFile("/signature2.png")
appearance.GraphicMode = GraphicMode.SignImageAndSignDetail
appearance.SignImageLayout = SignImageLayout.none

# 獲取首頁
page = doc.Pages[0]

# 將簽名添加到頁面指定位置
signatureMaker.MakeSignature("Alice sign", page, 90.0, 600.0, 260.0, 100.0, appearance)

# 保存已簽名文檔
doc.SaveToFile("/output/數(shù)字簽名.pdf")
doc.Close()

結(jié)果預(yù)覽:

以下示例展示如何使用打開密碼和權(quán)限密碼加密 PDF:

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

# 加載 PDF 文件
doc = PdfDocument()
doc.LoadFromFile("/input/AI繪畫的利與弊-圖片版.pdf")

# 使用打開密碼和權(quán)限密碼加密 PDF
doc.Security.Encrypt("openPsd", "permissionPsd", PdfPermissionsFlags.FillFields, PdfEncryptionKeySize.Key128Bit)

doc.SaveToFile("/output/加密PDF.pdf", FileFormat.PDF)

總結(jié)

總的來說,Python 提供了豐富的解決方案來處理 PDF,從滿足基礎(chǔ)需求的開源庫到針對復(fù)雜工作流提供高級功能的商業(yè)工具。根據(jù)項(xiàng)目需求——無論是簡單的文本提取、文檔轉(zhuǎn)換,還是構(gòu)建完整的自動(dòng)化 PDF 工作流——開發(fā)者都可以選擇最適合的方案,在功能性、易用性和性能之間找到最佳平衡。

到此這篇關(guān)于5 種使用Python自動(dòng)化處理PDF的實(shí)用方法介紹的文章就介紹到這了,更多相關(guān)Python自動(dòng)化處理PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python結(jié)合ImageMagick實(shí)現(xiàn)多張圖片合并為一個(gè)pdf文件的方法

    Python結(jié)合ImageMagick實(shí)現(xiàn)多張圖片合并為一個(gè)pdf文件的方法

    這篇文章主要介紹了Python結(jié)合ImageMagick實(shí)現(xiàn)多張圖片合并為一個(gè)pdf文件的方法,結(jié)合實(shí)例形式分析了Python將圖片文件轉(zhuǎn)換為pdf文件的相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Anaconda+spyder+pycharm的pytorch配置詳解(GPU)

    Anaconda+spyder+pycharm的pytorch配置詳解(GPU)

    這篇文章主要介紹了Anaconda+spyder+pycharm的pytorch配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python中的subprocess.Popen()使用詳解

    python中的subprocess.Popen()使用詳解

    今天小編就為大家分享一篇python中的subprocess.Popen()使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python自然語言處理之snownlp模塊介紹、安裝與常見操作實(shí)戰(zhàn)案例

    Python自然語言處理之snownlp模塊介紹、安裝與常見操作實(shí)戰(zhàn)案例

    SnowNLP是一個(gè)針對中文文本處理的Python庫,提供分詞、詞性標(biāo)注、情感分析等功能,它基于自然語言處理技術(shù),能夠處理unicode編碼的文本,這篇文章主要介紹了Python自然語言處理之snownlp模塊介紹、安裝與常見操作的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Python新年炫酷煙花秀代碼

    Python新年炫酷煙花秀代碼

    大家好,本篇文章主要講的是Python新年炫酷煙花秀代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python中工作日類庫Busines Holiday的介紹與使用

    Python中工作日類庫Busines Holiday的介紹與使用

    Python語言是通過區(qū)分類庫的方式來劃分功能。用戶根據(jù)自身的需要加載合適的類庫,來完成需要的功能。下面這篇文章主要給大家介紹了關(guān)于Python中工作日類庫Busines Holiday使用的相關(guān)資料,需要的朋友可以參考借鑒。
    2017-07-07
  • 對python中的*args與**kwgs的含義與作用詳解

    對python中的*args與**kwgs的含義與作用詳解

    今天小編就為大家分享一篇對python中的*args與**kwgs的含義與作用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 基于PyQt6實(shí)現(xiàn)顏色選擇器小工具

    基于PyQt6實(shí)現(xiàn)顏色選擇器小工具

    這篇文章主要為大家詳細(xì)介紹了如何基于PyQt6實(shí)現(xiàn)顏色選擇器小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • python pandas讀取csv后,獲取列標(biāo)簽的方法

    python pandas讀取csv后,獲取列標(biāo)簽的方法

    今天小編就為大家分享一篇python pandas讀取csv后,獲取列標(biāo)簽的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • pygame實(shí)現(xiàn)一個(gè)類似滿天星游戲流程詳解

    pygame實(shí)現(xiàn)一個(gè)類似滿天星游戲流程詳解

    這篇文章主要介紹了使用pygame來編寫類滿天星游戲的全記錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09

最新評論

泸州市| 县级市| 泌阳县| 成武县| 濉溪县| 任丘市| 长海县| 镇坪县| 黔西| 乐陵市| 莱阳市| 卢湾区| 丘北县| 黄山市| 兴国县| 西昌市| 东乡| 息烽县| 延长县| 龙口市| 张北县| 沂南县| 新建县| 昭觉县| 韩城市| 栾川县| 阜新市| 云林县| 周宁县| 张家口市| 新民市| 福安市| 榆社县| 吉水县| 长治县| 天峨县| 汝城县| 澳门| 屯昌县| 晋城| 天气|