精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PyPDF2 庫中 PDF 文檔處理的九個基本操作指南

開發
本文將詳細介紹使用PyPDF2進行PDF處理的九個基本操作,并通過實際代碼示例幫助你快速上手。

PyPDF2是一個非常實用的Python庫,用于讀取、分割、合并、裁剪以及執行其他PDF文檔操作。它非常適合自動化處理PDF文件的任務。本文將詳細介紹使用PyPDF2進行PDF處理的九個基本操作,并通過實際代碼示例幫助你快速上手。

安裝PyPDF2

首先,你需要安裝PyPDF2庫。打開命令行工具,輸入以下命令:

pip install pypdf2

安裝完成后,你可以通過以下方式導入PyPDF2庫:

from PyPDF2 import PdfReader, PdfWriter

讀取PDF文件

讀取PDF文件是任何PDF處理任務的第一步。這里有一個簡單的示例:

# 導入必要的庫
from PyPDF2 import PdfReader

# 創建PdfReader對象
reader = PdfReader("example.pdf")

# 獲取PDF的頁數
num_pages = len(reader.pages)
print(f"Number of pages: {num_pages}")

# 獲取第一頁的內容
first_page = reader.pages[0]
text = first_page.extract_text()
print(f"First page text:\n{text}")

這段代碼首先創建了一個PdfReader對象來讀取名為example.pdf的文件,然后獲取了該PDF的總頁數并打印出來。接著,它提取了第一頁的內容并將其打印出來。

分割PDF文件

有時我們需要將一個大的PDF文件拆分成多個小文件。下面是一個如何實現這一目標的例子:

from PyPDF2 import PdfReader, PdfWriter

def split_pdf(input_pdf, output_prefix):
    # 創建PdfReader對象
    reader = PdfReader(input_pdf)

    # 遍歷每一頁
    for i in range(len(reader.pages)):
        writer = PdfWriter()

        # 添加當前頁
        writer.add_page(reader.pages[i])

        # 寫入新的PDF文件
        with open(f"{output_prefix}_{i + 1}.pdf", "wb") as f:
            writer.write(f)

split_pdf("large_document.pdf", "part")

這段代碼定義了一個函數split_pdf,它接受兩個參數:一個是輸入的PDF文件名,另一個是輸出文件的前綴。對于輸入PDF中的每一頁,它都會創建一個新的PDF文件并保存下來。

合并多個PDF文件

合并多個PDF文件也非常簡單。下面是一個示例:

from PyPDF2 import PdfReader, PdfWriter

def merge_pdfs(inputs, output):
    writer = PdfWriter()

    for input_pdf in inputs:
        reader = PdfReader(input_pdf)
        for page in reader.pages:
            writer.add_page(page)

    with open(output, "wb") as f:
        writer.write(f)

merge_pdfs(["doc1.pdf", "doc2.pdf"], "merged.pdf")

這個函數接收一個包含多個PDF文件名的列表作為輸入,并將它們合并成一個PDF文件。每添加一頁時,它都會調用add_page方法將頁面添加到最終的PDF文檔中。

旋轉PDF頁面

如果你需要調整PDF文件中某些頁面的方向,可以使用rotate_clockwise或rotate_counter_clockwise方法輕松實現:

from PyPDF2 import PdfReader, PdfWriter

def rotate_pages(input_pdf, output_pdf, angle):
    reader = PdfReader(input_pdf)
    writer = PdfWriter()

    for page in reader.pages:
        if angle == 90:
            page.rotate_clockwise(90)
        elif angle == -90:
            page.rotate_counter_clockwise(90)
        else:
            raise ValueError("Angle must be 90 or -90.")

        writer.add_page(page)

    with open(output_pdf, "wb") as f:
        writer.write(f)

rotate_pages("example.pdf", "rotated.pdf", 90)

此函數根據指定的角度(90度或-90度)旋轉PDF中的所有頁面,并將結果保存到新的PDF文件中。

加密PDF文件

加密PDF文件可以保護文件內容不被未經授權的人訪問。下面是一個簡單的加密示例:

from PyPDF2 import PdfReader, PdfWriter

def encrypt_pdf(input_pdf, output_pdf, password):
    reader = PdfReader(input_pdf)
    writer = PdfWriter()

    for page in reader.pages:
        writer.add_page(page)

    # 設置密碼
    writer.encrypt(password)

    # 寫入加密后的PDF文件
    with open(output_pdf, "wb") as f:
        writer.write(f)

encrypt_pdf("example.pdf", "encrypted.pdf", "secret")

這段代碼定義了一個函數encrypt_pdf,它接受三個參數:輸入的PDF文件名、輸出的PDF文件名和密碼。它遍歷輸入PDF中的每一頁并將其添加到writer對象中,然后使用encrypt方法設置密碼,并將加密后的PDF文件寫入到新的文件中。

解密PDF文件

如果要讀取已加密的PDF文件,需要先對其進行解密。下面是一個簡單的解密示例:

from PyPDF2 import PdfReader, PdfWriter

def decrypt_pdf(input_pdf, output_pdf, password):
    reader = PdfReader(input_pdf)

    # 檢查是否已加密
    if reader.is_encrypted:
        try:
            reader.decrypt(password)
        except Exception as e:
            print(f"Error: {e}")
            return

    writer = PdfWriter()

    for page in reader.pages:
        writer.add_page(page)

    # 寫入解密后的PDF文件
    with open(output_pdf, "wb") as f:
        writer.write(f)

decrypt_pdf("encrypted.pdf", "decrypted.pdf", "secret")

這段代碼定義了一個函數decrypt_pdf,它接受三個參數:輸入的PDF文件名、輸出的PDF文件名和密碼。它首先檢查輸入PDF是否已加密,如果是,則嘗試使用提供的密碼進行解密。如果解密成功,它會將PDF文件中的每一頁添加到writer對象中,并將解密后的PDF文件寫入到新的文件中。

添加水印

在PDF文件中添加水印可以幫助標識文檔的所有權或提醒讀者注意版權問題。下面是一個簡單的添加水印示例:

from PyPDF2 import PdfReader, PdfWriter

def add_watermark(input_pdf, watermark_pdf, output_pdf):
    reader = PdfReader(input_pdf)
    watermark_reader = PdfReader(watermark_pdf)
    writer = PdfWriter()

    # 獲取水印頁面
    watermark_page = watermark_reader.pages[0]

    for page in reader.pages:
        page.merge_page(watermark_page)
        writer.add_page(page)

    # 寫入帶有水印的PDF文件
    with open(output_pdf, "wb") as f:
        writer.write(f)

add_watermark("example.pdf", "watermark.pdf", "watermarked.pdf")

這段代碼定義了一個函數add_watermark,它接受三個參數:輸入的PDF文件名、水印PDF文件名和輸出的PDF文件名。它首先創建一個watermark_page對象來表示水印頁面,然后遍歷輸入PDF中的每一頁,并使用merge_page方法將水印頁面添加到每一頁中。最后,將帶有水印的PDF文件寫入到新的文件中。

實戰案例:批量處理PDF文件

假設你有一個文件夾中包含多個PDF文件,需要對這些文件進行批量處理,例如添加水印、加密或解密。下面是一個簡單的批量處理示例:

import os
from PyPDF2 import PdfReader, PdfWriter

def batch_process_pdf(input_folder, watermark_pdf, output_folder, password=None):
    # 創建輸出文件夾
    os.makedirs(output_folder, exist_ok=True)

    # 獲取文件夾中的所有PDF文件
    pdf_files = [f for f in os.listdir(input_folder) if f.endswith(".pdf")]

    for pdf_file in pdf_files:
        input_pdf_path = os.path.join(input_folder, pdf_file)
        output_pdf_path = os.path.join(output_folder, pdf_file)

        # 創建PdfReader對象
        reader = PdfReader(input_pdf_path)
        writer = PdfWriter()

        # 添加水印
        if watermark_pdf is not None:
            watermark_reader = PdfReader(watermark_pdf)
            watermark_page = watermark_reader.pages[0]
            for page in reader.pages:
                page.merge_page(watermark_page)
                writer.add_page(page)

        # 加密或解密
        if password is not None:
            writer.encrypt(password)
        elif reader.is_encrypted:
            reader.decrypt(password)
            for page in reader.pages:
                writer.add_page(page)

        # 寫入新的PDF文件
        with open(output_pdf_path, "wb") as f:
            writer.write(f)

batch_process_pdf("input_folder", "watermark.pdf", "output_folder", "secret")

這段代碼定義了一個函數batch_process_pdf,它接受四個參數:輸入文件夾路徑、水印PDF文件名、輸出文件夾路徑和密碼。它首先創建輸出文件夾,并獲取輸入文件夾中的所有PDF文件。

然后,對于每個PDF文件,它執行以下操作:

  • 創建一個PdfReader對象來讀取輸入PDF文件。
  • 如果提供了水印PDF文件,則添加水印。
  • 如果提供了密碼,則進行加密或解密。
  • 將處理后的PDF文件寫入到輸出文件夾中。

本文介紹了使用PyPDF2庫進行PDF文件讀取、分割、合并、旋轉、加密、解密及添加水印的基本操作。通過實際代碼示例展示了如何利用PyPDF2自動化處理PDF文件,從而提高工作效率。希望這些示例能夠幫助你更好地理解和應用PyPDF2庫。

責任編輯:趙寧寧 來源: 小白PythonAI編程
相關推薦

2024-06-12 08:36:32

PyPDF2Python庫文件處理

2023-11-20 22:07:51

PythonPDF

2019-05-23 14:59:21

PythonPDF編程語言

2020-09-15 15:50:33

Python編程語言代碼

2023-11-22 19:07:51

PyPDF2PDF文件

2024-09-24 10:16:13

PythonWord文檔

2023-11-29 11:30:17

PDF語言模型

2022-02-06 10:43:43

PDF文件Python

2024-09-30 08:10:22

2025-04-10 08:20:00

OpenCV圖像處理計算機視覺

2024-10-10 15:51:50

2019-10-15 15:15:31

Python大數據函數

2022-01-03 16:08:36

深度學習PyTorchNumPy

2024-12-31 12:00:00

OpenCVPython圖像處理

2010-04-19 13:12:36

Oracle 9i數據

2009-12-31 16:38:19

Silverlight

2023-11-06 01:10:47

2022-09-28 08:40:04

殺死一個終端進程

2024-10-07 08:26:05

編程Python異常處理

2024-05-15 09:05:43

Python文檔處理工具自動化文檔生成
點贊
收藏

51CTO技術棧公眾號

欧美精品久久久| 91精品国产九九九久久久亚洲| 天天爽夜夜爽一区二区三区| 国内精品久久久久国产| 成人av午夜影院| 日韩免费观看网站| 强行糟蹋人妻hd中文| 亚洲电影男人天堂| 91精品久久久久久久99蜜桃| 黄色大片在线免费看| 亚洲乱亚洲乱妇| 成人黄色a**站在线观看| 国产精品色视频| 免费在线视频观看| 日韩电影一区| 日韩精品视频在线播放| 波多野结衣网页| 久久夜夜操妹子| 亚洲一本大道在线| 一级日韩一区在线观看| 五月婷婷六月丁香| 国产a区久久久| 国产精品入口夜色视频大尺度 | 99香蕉久久| 在线观看91精品国产入口| a级黄色小视频| 日本激情视频在线观看| 久久女同精品一区二区| 国产精品入口免费| 国产麻豆免费视频| 日本亚洲一区二区| 欧美性做爰毛片| 国产一级二级三级视频| 久久久久亚洲| 中文字幕欧美专区| 欧洲美一区二区三区亚洲| 国产精品99久久免费观看| 欧美一区二区三区免费在线看| 国产情侣av自拍| 中文字幕色婷婷在线视频| 亚洲午夜羞羞片| 男人天堂新网址| 麻豆影视国产在线观看| 国产精品视频一二三区| 日本欧美精品久久久| 天堂在线免费av| 成人黄色av网站在线| 97免费高清电视剧观看| 国产内射老熟女aaaa∵| 国产一区美女在线| 91精品在线观| 99国产精品99| 国产精品夜夜嗨| 97久久天天综合色天天综合色hd| www.中文字幕| 懂色一区二区三区免费观看| 国产二区不卡| 色丁香婷婷综合久久| 成人动漫精品一区二区| 精品国产_亚洲人成在线| 蜜臀av午夜精品| eeuss鲁片一区二区三区在线观看| 国产精品久久久久久久小唯西川 | 9色porny自拍视频一区二区| 国产精品夜夜夜一区二区三区尤| 欧美性受xxxx狂喷水| youjizz国产精品| 久久精品第九区免费观看| 色就是色亚洲色图| 亚洲国产电影在线观看| 一区二区不卡在线| 中文字幕免费高清电视剧网站在线观看| 亚洲精品免费电影| 老太脱裤子让老头玩xxxxx| 麻豆成全视频免费观看在线看| 狠狠爱在线视频一区| 欧美少妇性生活视频| **日韩最新| 精品女同一区二区| 日本黄色特级片| 欧美成人精品一区二区三区在线看| 久热精品视频在线观看一区| 久一视频在线观看| 久久精品30| 51成人做爰www免费看网站| 欧美一级性视频| 欧美国产日韩一二三区| 2021狠狠干| 国产在线精彩视频| 欧美天堂亚洲电影院在线播放| 在线视频日韩欧美| 四虎884aa成人精品最新| 日韩在线观看网址| 日韩免费一二三区| 男女男精品网站| 99国产超薄丝袜足j在线观看| 亚洲av成人精品一区二区三区在线播放 | 图片区亚洲欧美小说区| 国内精品久久久久久影视8| 最近中文字幕免费观看| 成人午夜看片网址| 亚洲在线不卡| 日韩在线伦理| 日韩一区二区三免费高清| 国产免费看av| 樱桃成人精品视频在线播放| 国产精品入口免费视频一| 人妻妺妺窝人体色www聚色窝| 国产精品精品国产色婷婷| 国产无限制自拍| 亚洲精品一区av| 亚洲美女久久久| 久久久全国免费视频| 免费在线成人网| 精品国产福利| av文字幕在线观看| 欧美日本乱大交xxxxx| 疯狂揉花蒂控制高潮h| 国产一区日韩一区| 亚洲999一在线观看www| 999在线视频| 欧美性黄网官网| 人妻av一区二区| 中文字幕人成人乱码| 国产精品成人aaaaa网站| 无码精品在线观看| 夜夜夜精品看看| 911av视频| 日韩不卡一区| 国产精品久久久久久久久免费看| 天天干天天干天天干| 亚洲在线一区二区三区| 91看片破解版| 久久神马影院| 国产女人精品视频| 成人午夜影视| 欧美午夜理伦三级在线观看| 日韩乱码人妻无码中文字幕久久| 亚洲激情午夜| 国产美女精品在线观看| 免费在线中文字幕| 日韩精品一区二区三区老鸭窝| 亚洲综合视频网站| 黑人巨大精品欧美一区| 亚洲在线不卡| 成人免费观看49www在线观看| 视频直播国产精品| 亚洲一级特黄毛片| 国产精品欧美久久久久无广告| 538在线视频观看| 青青草91久久久久久久久| 国产精品久久久久久亚洲影视| 国产美女视频一区二区三区| 91久久精品一区二区三| 色欲狠狠躁天天躁无码中文字幕| 日本最新不卡在线| 亚洲欧美国产不卡| 在线免费成人| 欧美激情日韩图片| 午夜视频1000| 日本精品一区二区三区高清 | 亚洲aⅴ乱码精品成人区| 欧美日韩一区二区三区| 日本爱爱爱视频| 经典三级在线一区| 日本一级黄视频| 美女呻吟一区| 国产精品99蜜臀久久不卡二区| 永久免费av在线| 日韩一区二区三区电影在线观看| 黄页网站免费观看| 99久久国产综合精品麻豆 | 精品一区二区三区免费视频| 亚洲黄色网址在线观看| 成人午夜大片| 国产精品wwwwww| 超碰人人在线| 亚洲精品短视频| 亚洲天堂视频在线播放| 成人免费小视频| 超碰男人的天堂| 日本网站在线观看一区二区三区 | 99在线视频首页| 中文字幕色婷婷在线视频| 中文字幕综合在线| 亚洲av无码一区二区三区dv| 精品日韩中文字幕| sm捆绑调教视频| 成人国产电影网| 88av.com| 亚洲欧美综合| 天天爽天天狠久久久| 亚洲人成网站在线在线观看| 91成人国产在线观看| 免费在线观看黄色| 亚洲男人第一av网站| 国产乱码久久久| 一本色道久久综合亚洲aⅴ蜜桃| 日本黄区免费视频观看| va亚洲va日韩不卡在线观看| 伊人国产在线视频| 免费精品视频| 久久福利一区二区| 精品视频99| 国产精品污www一区二区三区| 九九热这里有精品| 欧美伊久线香蕉线新在线| av片哪里在线观看| 亚洲天堂免费视频| 日本高清视频在线| 欧美一区二区三级| 精品国产青草久久久久96| 亚洲成人免费看| 精品国产视频一区二区三区| 国产视频一区二区在线| 亚洲欧美日韩偷拍| 国产在线一区观看| 亚洲第一中文av| 亚洲一区二区网站| 国产一区二区三区小说| 天天做天天爱天天综合网2021| 欧美三日本三级少妇三99| 91麻豆精品国产91久久久久推荐资源 | 国产一级片免费| 亚洲欧美偷拍卡通变态| 精品丰满少妇一区二区三区| 久久一夜天堂av一区二区三区| 精品国产免费久久久久久婷婷| 精品一区二区在线观看| 日韩不卡一二三| 石原莉奈在线亚洲二区| av免费观看网| 99国产成+人+综合+亚洲欧美| 亚洲色欲久久久综合网东京热| 小小影院久久| 欧美亚洲视频一区| 国产精品久久久久久久久久10秀 | 中国1级黄色片| 久久精品欧美一区二区三区不卡| 国产精品嫩草av| 97se亚洲国产综合自在线不卡| a级一a一级在线观看| 不卡一区二区三区四区| 天堂www中文在线资源| 成人av在线播放网址| 人妻激情偷乱频一区二区三区| 岛国精品在线观看| 日本黄色录像片| 久久综合色婷婷| 国产成人无码精品久久二区三| 久久九九久久九九| 国产日韩精品中文字无码| 国产精品午夜电影| 蜜臀av午夜精品久久| 亚洲人成7777| www.av视频在线观看| 韩曰欧美视频免费观看| 国产精品男女视频| 色噜噜狠狠成人网p站| 中文 欧美 日韩| 欧美剧在线免费观看网站| 国产同性人妖ts口直男| 精品国产乱码久久久久久图片| 丁香六月天婷婷| 精品亚洲国产成av人片传媒 | 欧美国产1区2区| 久久久久亚洲av片无码| 亚洲综合色区另类av| 日韩不卡视频在线| 欧美亚洲一区二区在线| 一区二区三区免费观看视频| 日韩午夜小视频| 亚洲av成人无码久久精品老人| 亚洲一区999| av在线影院| 青青草原成人在线视频| 国产激情久久| 国产福利一区二区三区在线观看| 欧美五码在线| 亚洲一区免费看| 一区免费在线| av污在线观看| 成人爱爱电影网址| 在线看片中文字幕| 亚洲一区二区三区在线看| 色老头一区二区| 日韩欧美一级精品久久| 玖玖综合伊人| 九九久久久久久久久激情| 成人福利av| 亚洲在线免费观看| 视频一区欧美| 欧美在线观看黄| 免费精品视频最新在线| 人妻互换一二三区激情视频| 欧美激情一区二区三区全黄| 精品午夜福利视频| 欧美日本一区二区| 欧美一区二区少妇| 欧美人成在线视频| 99久久精品一区二区成人| 韩国成人动漫在线观看| 99久久视频| 日韩中文字幕组| thepron国产精品| 国产免费无码一区二区视频| 欧美午夜视频网站| 色鬼7777久久| 欧美精品成人91久久久久久久| 日韩成人综合网站| 欧美午夜精品久久久久久蜜| 国内综合精品午夜久久资源| 91 在线视频观看| 国产亚洲视频系列| 久久久久久久久久久久久久av| 欧美一区二区精品久久911| 中文字幕日本在线观看| 日本亚洲精品在线观看| 成人av地址| 日本免费成人网| 国产剧情一区二区三区| 久久成人小视频| 欧美伊人久久久久久午夜久久久久| 色网站免费观看| 欧美日韩国产123| 综合欧美精品| av不卡在线免费观看| 男女激情视频一区| 手机免费看av| 日韩人在线观看| 国产又爽又黄网站亚洲视频123| 欧美成人自拍视频| 国产日韩一区二区三免费高清| 国产又大又长又粗又黄| 国内精品久久久久久野外| 老司机一区二区三区| 亚洲国产欧美自拍| 国产精品v日韩精品v在线观看| 深夜国产在线播放| 国产亚洲综合性久久久影院| 懂色av一区二区三区在线播放| 国产又粗又猛又爽又| 欧美久久影院| www日韩欧美| 国产精品麻豆免费版现看视频| 国产香蕉久久| 樱桃国产成人精品视频| 超碰在线人人爱| 久久九九久久九九| 少妇高潮av久久久久久| 亚洲人成绝费网站色www| 美女一区网站| 日韩精品大片| 日本女人一区二区三区| 人与动物性xxxx| 欧美一区二区三区视频在线观看 | 久久免费美女视频| 国产精品久久久久久久久久久久久久久久久| 亚洲第一中文字幕在线观看| 性欧美18~19sex高清播放| 日韩黄色影视| 日本欧美一区二区三区| www.xx日本| 欧美成人精品3d动漫h| 97蜜桃久久| 日韩一区免费观看| 激情综合色播激情啊| 免费网站观看www在线观| 亚洲国产精品va在线| 2022成人影院| 国产a级片免费看| 成人免费毛片高清视频| 久久久久99精品成人片我成大片| 一区二区在线视频| 日韩免费一级| 日韩精品一区二区三区不卡| 国产精品国产精品国产专区不蜜| 国产成人精品一区二区无码呦| 久久久久久久久久久久av| 一本色道久久综合亚洲精品酒店 | 成 年 人 黄 色 大 片大 全| 久久久久久免费网| 国产婷婷一区二区三区久久| 91精品国产网站| 欧美a级片视频| 91丨porny丨对白| 欧美三级中文字幕| a天堂资源在线| 亚洲免费视频一区| 99久久综合精品| 国产又粗又猛又爽又黄视频 | 伊人久久久久久久久久久| 亚洲专区**| 特级丰满少妇一级| 亚洲成a人在线观看| 中文日本在线观看| 国产一区二区不卡视频| 精品一区二区三区日韩| 看片网址国产福利av中文字幕| 久久久国产精品x99av|