Python精选200Tips:136-140


最后一舞,接下来请欣赏60个Python实战小节目

运行系统:macOS Sonoma 14.6.1
Python编译器:PyCharm 2024.1.4 (Community Edition)
Python版本:3.12

往期链接:

1-5 6-10 11-20 21-30 31-40 41-50
51-60:函数 61-70:类 71-80:编程范式及设计模式
81-90:Python编码规范 91-100:Python自带常用模块-1
101-105:Python自带模块-2 106-110:Python自带模块-3
111-115:Python常用第三方包-频繁使用 116-120:Python常用第三方包-深度学习
121-125:Python常用第三方包-爬取数据 126-130:Python常用第三方包-为了乐趣
131-135:Python常用第三方包-拓展工具

本文只介绍每个包主要做什么及一些比较经典的示例。对于包的进一步学习,推荐参考对应包的官方文档。

136 PyPDF2–PDF编辑库

PyPDF2版本3.0.1,官方文档

PyPDF2 是一个用于操作 PDF 文件的 Python 库,支持读取、合并、拆分和修改 PDF 文件。尽管它的功能相对基础,但非常适合进行简单的 PDF 操作。主要功能:

  • 读取 PDF 文件:
    提取文本、元数据和页面信息。
  • 合并 PDF 文件:
    将多个 PDF 文件合并为一个文件。
  • 拆分 PDF 文件:
    从 PDF 文件中提取特定的页面。
  • 添加水印:
    将一个 PDF 文件作为水印添加到另一个 PDF 文件上。
  • 旋转页面:
    旋转 PDF 文件中的页面。
import PyPDF2

# 1. 读取 PDF 文件
def read_pdf(file_path):
    with open(file_path, "rb") as file:
        reader = PyPDF2.PdfReader(file)
        text = ""
        for page in reader.pages:
            text += page.extract_text() + "\n"
        return text

# 2. 合并 PDF 文件
def merge_pdfs(pdf_list, output_path):
    pdf_writer = PyPDF2.PdfWriter()
    for pdf_file in pdf_list:
        with open(pdf_file, "rb") as file:
            reader = PyPDF2.PdfReader(file)
            for page in reader.pages:
                pdf_writer.add_page(page)
    with open(output_path, "wb") as output_file:
        pdf_writer.write(output_file)

# 3. 拆分 PDF 文件
def split_pdf(file_path, page_number, output_path):
    with open(file_path, "rb") as file:
        reader = PyPDF2.PdfReader(file)
        pdf_writer = PyPDF2.PdfWriter()
        pdf_writer.add_page(reader.pages[page_number])
        with open(output_path, "wb") as output_file:
            pdf_writer.write(output_file)

# 4. 添加水印
def add_watermark(input_pdf, watermark_pdf, output_pdf):
    with open(input_pdf, "rb") as original_file, open(watermark_pdf, "rb") as watermark_file:
        original_reader = PyPDF2.PdfReader(original_file)
        watermark_reader = PyPDF2.PdfReader(watermark_file)
        pdf_writer = PyPDF2.PdfWriter()
        for page in original_reader.pages:
            page.merge_page(watermark_reader.pages[0])
            pdf_writer.add_page(page)
        with open(output_pdf, "wb") as output_file:
            pdf_writer.write(output_file)

# 5. 旋转页面
def rotate_page(input_pdf, page_number, angle, output_pdf):
    with open(input_pdf, "rb") as file:
        reader = PyPDF2.PdfReader(file)
        pdf_writer = PyPDF2.PdfWriter()
        page = reader.pages[page_number]
        page.rotate_clockwise(angle)
        pdf_writer.add_page(page)
        with open(output_pdf, "wb") as output_file:
            pdf_writer.write(output_file)

# 使用示例
if __name__ == "__main__":
    # 读取 PDF 文件
    print("Reading PDF:")
    print(read_pdf("example.pdf"))

    # 合并 PDF 文件
    merge_pdfs(["file1.pdf", "file2.pdf"], "merged.pdf")
    print("Merged PDFs into merged.pdf")

    # 拆分 PDF 文件
    split_pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnFany

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值