当前位置: 代码网 > it编程>前端脚本>Python > Python使用PyPDF2操作PDF的详细教程

Python使用PyPDF2操作PDF的详细教程

2025年02月28日 Python 我要评论
安装pypdf2首先,你需要安装pypdf2库。你可以使用pip来安装它:pip install pypdf2读取pdf文件读取pdf文件并打印其页数:import pypdf2# 使用pypdf2读

安装pypdf2

首先,你需要安装pypdf2库。你可以使用pip来安装它:

pip install pypdf2

读取pdf文件

读取pdf文件并打印其页数:

import pypdf2

# 使用pypdf2读取pdf文件
if __name__ == '__main__':
    # 打开 pdf 文件
    with open('example.pdf', 'rb') as file:
        # 创建一个 pdf 阅读器对象
        reader = pypdf2.pdfreader(file)

        # 打印 pdf 文件中的页数
        print(f'number of pages: {len(reader.pages)}')

提取文本

从pdf文件中提取文本:

import pypdf2

# 使用pypdf2读取pdf文本
if __name__ == '__main__':
    # 打开 pdf 文件
    with open('example.pdf', 'rb') as file:
        # 创建一个 pdf 阅读器对象
        reader = pypdf2.pdfreader(file)

        # 提取第一页的文本
        page = reader.pages[0]
        text = page.extract_text()

        print(text)

拆分pdf文件

将pdf文件拆分为两个文件,一个文件包含奇数页,一个文件包含偶数页:

import pypdf2

# 使用pypdf2将pdf文件拆分为两个文件,一个文件包含奇数页,一个文件包含偶数页:
if __name__ == '__main__':
    # 创建一个 pdf 写入器对象
    odd_writer = pypdf2.pdfwriter()
    even_writer = pypdf2.pdfwriter()

    # 打开要拆分的 pdf 文件
    with open('example.pdf', 'rb') as file:
        reader = pypdf2.pdfreader(file)

        page_num = 0
        for page in reader.pages:
            # print(page_num)
            if page_num % 2 == 0:
                # print(reader.pages[page_num])
                odd_writer.add_page(page)
            else:
                even_writer.add_page(page)
            page_num = page_num+1

        # 将拆分后的 pdf 写入到一个新文件
        with open('example1.pdf', 'wb') as output_pdf:
            odd_writer.write(output_pdf)

        # 将拆分后的 pdf 写入到一个新文件
        with open('example2.pdf', 'wb') as output_pdf:
            even_writer.write(output_pdf)

合并pdf文件

你可以将多个pdf文件合并为一个:

import pypdf2

# 使用pypdf2合并两个pdf文件
if __name__ == '__main__':
    # 打开要合并的 pdf 文件
    pdf_files = ['example1.pdf', 'example2.pdf']

    # 创建一个 pdf 写入器对象
    merger = pypdf2.pdfmerger()

    for pdf_file in pdf_files:
        merger.append(pdf_file)

    # 将合并后的 pdf 写入到一个新文件
    with open('merged.pdf', 'wb') as output_pdf:
        merger.write(output_pdf)

裁剪pdf页面

pypdf2并不直接支持裁剪页面,但你可以通过提取页面的部分内容并创建一个新的页面来实现这一功能。以下是一个简单的示例,演示如何裁剪页面的上半部分:

import pypdf2

# 使用pypdf2裁剪pdf页面,通过提取页面的部分内容并创建一个新的页面来实现这一功能
if __name__ == '__main__':
    # 打开 pdf 文件
    with open('example.pdf', 'rb') as file:
        reader = pypdf2.pdfreader(file)

        # 创建一个 pdf 写入器对象
        writer = pypdf2.pdfwriter()

        # 获取第一页
        page = reader.pages[0]

        # 定义裁剪区域(左下角和右上角的坐标)
        # 表示裁剪区域的左下角和右上角坐标
        cropbox = page.cropbox
        x_lower_left = cropbox.lower_left[0]
        y_lower_left = cropbox.lower_left[1] + (cropbox.upper_right[1] - cropbox.lower_left[1]) / 2
        x_upper_right = cropbox.upper_right[0]
        y_upper_right = cropbox.upper_right[1]

        # 设置裁剪区域(左下x, 左下y, 右上x, 右上y)
        page.cropbox.lower_left = (x_lower_left, y_lower_left)
        page.cropbox.upper_right = (x_upper_right, y_upper_right)
        writer.add_page(page)

        # 将裁剪后的 pdf 写入到一个新文件
        with open('cropped_example.pdf', 'wb') as output_pdf:
            writer.write(output_pdf)

加密pdf

from pypdf2 import pdfwriter
from pypdf2 import pdfreader

# 使用pypdf2加密pdf
if __name__ == '__main__':
    writer = pdfwriter()
    with open('example.pdf', 'rb') as file:
        reader = pdfreader(file)
        writer.add_page(reader.pages[0])

    # 设置加密(128位 aes)
    writer.encrypt(
        user_password="password123",
        owner_password=none,
        use_128bit=true
    )

    with open("encrypted.pdf", "wb") as out_file:
        writer.write(out_file)

到此这篇关于python使用pypdf2操作pdf的详细教程的文章就介绍到这了,更多相关python pypdf2操作pdf内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com