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

Python使用PyPDF進行PDF操作的代碼示例

 更新時間:2025年01月22日 10:43:46   作者:ghostwritten  
PDF 是一種非常常見的文件格式,用于文檔共享、電子書、合同等場景,對于開發(fā)者來說,能夠高效地操作 PDF 文件是一個重要技能,本文將介紹如何使用 Python 的 PyPDF 庫完成一些常見的 PDF 處理任務,并分享實戰(zhàn)經驗,需要的朋友可以參考下

1. 為什么選擇 PyPDF?

PyPDF 是一個輕量級且功能強大的 PDF 操作庫,支持以下功能:

  • 合并和拆分 PDF 文件
  • 提取文本和元信息
  • 添加或修改文檔的元數(shù)據(jù)
  • 加密和解密 PDF
  • 自定義 PDF 頁面旋轉或裁剪

以下是一些實戰(zhàn)場景的詳細實現(xiàn)。

2. 安裝 PyPDF

首先,需要安裝 PyPDF 庫??梢允褂?pip:

pip install pypdf

確保安裝的是最新版,以獲得最新功能和性能改進。

3. PDF 文件的合并與拆分

3.1 合并 PDF 文件

合并多個 PDF 文件在生成報告或整理文檔時非常有用。

from pypdf import PdfMerger

# 初始化合并器
merger = PdfMerger()

# 添加需要合并的 PDF 文件
merger.append("file1.pdf")
merger.append("file2.pdf")

# 保存合并后的文件
merger.write("merged.pdf")
merger.close()
print("PDF 合并完成!")

3.2 拆分 PDF 文件

將一個 PDF 文件拆分為多個獨立的頁面文件。

from pypdf import PdfReader, PdfWriter

# 讀取 PDF 文件
reader = PdfReader("input.pdf")

# 拆分每一頁
for i, page in enumerate(reader.pages):
    writer = PdfWriter()
    writer.add_page(page)
    with open(f"page_{i+1}.pdf", "wb") as output_file:
        writer.write(output_file)
print("PDF 拆分完成!")

4. 提取 PDF 文本

提取 PDF 文件中的文本內容,可以用于數(shù)據(jù)分析或自動化處理。

from pypdf import PdfReader

# 讀取 PDF 文件
reader = PdfReader("input.pdf")

# 提取每頁的文本
for page in reader.pages:
    print(page.extract_text())

注意事項

  • 文本提取的效果取決于 PDF 的結構。如果 PDF 中的文本是以圖像形式存儲的,則無法直接提取文本。

5. 修改 PDF 元信息

修改 PDF 的元數(shù)據(jù),例如標題、作者等。

from pypdf import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

# 復制所有頁面到新 PDF
writer.add_pages(reader.pages)

# 修改元信息
writer.metadata = {
    "/Title": "新的標題",
    "/Author": "作者名",
    "/Subject": "主題描述"
}

with open("output.pdf", "wb") as output_file:
    writer.write(output_file)
print("元信息修改完成!")

6. PDF 加密與解密

6.1 加密 PDF

為 PDF 文件添加密碼保護。

from pypdf import PdfWriter

writer = PdfWriter()
writer.append("input.pdf")

# 設置密碼
writer.encrypt(user_password="user123", owner_password="owner123")

with open("encrypted.pdf", "wb") as output_file:
    writer.write(output_file)
print("PDF 加密完成!")

6.2 解密 PDF

解密受密碼保護的 PDF 文件。

from pypdf import PdfReader

reader = PdfReader("encrypted.pdf")

# 提供密碼解密
reader.decrypt("user123")

for page in reader.pages:
    print(page.extract_text())

7. 頁面旋轉與裁剪

7.1 旋轉頁面

旋轉 PDF 的頁面,例如將橫向頁面轉為縱向。

from pypdf import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

# 旋轉每一頁
for page in reader.pages:
    page.rotate(90)  # 順時針旋轉 90 度
    writer.add_page(page)

with open("rotated.pdf", "wb") as output_file:
    writer.write(output_file)
print("頁面旋轉完成!")

7.2 裁剪頁面

裁剪頁面邊框以去掉不必要的內容。

from pypdf import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

for page in reader.pages:
    # 設置裁剪框 (左, 下, 右, 上)
    page.mediabox.lower_left = (50, 50)
    page.mediabox.upper_right = (500, 700)
    writer.add_page(page)

with open("cropped.pdf", "wb") as output_file:
    writer.write(output_file)
print("頁面裁剪完成!")

8. 實戰(zhàn)經驗總結

  1. 處理異常:在實際操作中,確保捕獲文件讀寫或解析過程中的異常,例如文件不存在或解密失敗。
  2. 測試 PDF 文件:由于 PDF 文件格式的多樣性,在批量處理前需要先對樣本文件進行測試。
  3. 性能優(yōu)化:對于大文件,使用分批加載的方式處理。
  4. 安全性:避免在代碼中硬編碼敏感信息,例如密碼。

到此這篇關于Python使用PyPDF進行PDF操作的代碼示例的文章就介紹到這了,更多相關Python PyPDF進行PDF操作內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python callable函數(shù)使用方法詳解

    Python callable函數(shù)使用方法詳解

    這篇文章主要介紹了Python callable函數(shù)使用方法,一個可callable的對象是指可以被調用執(zhí)行的對象,并且可以傳入?yún)?shù), 用另一個簡單的描述方式,只要可以在一個對象的后面使用小括號來執(zhí)行代碼,那么這個對象就是callable對象,下面來詳細介紹使用方法,需要的朋友可以參考下
    2024-10-10
  • Transformer導論之Bert預訓練語言解析

    Transformer導論之Bert預訓練語言解析

    這篇文章主要為大家介紹了Transformer導論之Bert預訓練語言解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • django ajax發(fā)送post請求的兩種方法

    django ajax發(fā)送post請求的兩種方法

    這篇文章主要介紹了django ajax發(fā)送post請求的兩種方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python文件操作函數(shù)用法實例詳解

    Python文件操作函數(shù)用法實例詳解

    這篇文章主要介紹了Python文件操作函數(shù)用法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Python實現(xiàn)問題回答小游戲

    Python實現(xiàn)問題回答小游戲

    這篇文章主要介紹了利用Python制作一個簡單的知識競賽小游戲,可以實現(xiàn)回答問題功能,文中的示例代碼介紹詳細,感興趣的同學快跟隨小編一起學習吧
    2021-12-12
  • Python dict的使用誤區(qū)你知道嗎

    Python dict的使用誤區(qū)你知道嗎

    這篇文章主要為大家介紹了Python dict的使用誤區(qū),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python安裝Gradio和常見安裝問題解決辦法

    Python安裝Gradio和常見安裝問題解決辦法

    Gradio是一款便捷的Python庫,專門用于創(chuàng)建機器學習模型的Web應用,安裝通常簡單,但偶爾會遇到依賴問題或環(huán)境配置錯誤,這篇文章主要介紹了Python安裝Gradio和常見安裝問題解決辦法,需要的朋友可以參考下
    2024-10-10
  • pycharm 使用心得(三)Hello world!

    pycharm 使用心得(三)Hello world!

    作為PyCharm編輯器的起步,我們理所當然的先寫一個Hello word,并運行它。(此文獻給對IDE不熟悉的初學者)
    2014-06-06
  • Python中實現(xiàn)最小二乘法思路及實現(xiàn)代碼

    Python中實現(xiàn)最小二乘法思路及實現(xiàn)代碼

    這篇文章主要介紹了Python中實現(xiàn)最小二乘法思路及實現(xiàn)代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python excel多行合并的方法

    python excel多行合并的方法

    這篇文章主要介紹了python excel多行合并的方法,幫助大家更好的利用python處理excel表格,感興趣的朋友可以了解下
    2020-12-12

最新評論

兴城市| 新邵县| 巨野县| 芜湖市| 招远市| 太康县| 鲁山县| 南平市| 漳平市| 宿迁市| 沂源县| 如皋市| 绥棱县| 梨树县| 佛教| 格尔木市| 峡江县| 栖霞市| 崇礼县| 德昌县| 河源市| 武平县| 津南区| 潮州市| 兰溪市| 尼勒克县| 故城县| 丰都县| 集贤县| 阿克陶县| 承德市| 九寨沟县| 沛县| 宕昌县| 卓尼县| 诸暨市| 内江市| 兖州市| 都安| 许昌市| 龙井市|