RPA-使用Python处理PDF文件

本文介绍了使用Python库PyPDF2进行PDF处理,包括提取文档信息、旋转页面、合并PDF、拆分PDF、添加水印以及加密PDF的操作方法和示例代码。PyPDF2提供了方便的功能来实现PDF自动化任务,例如通过.getDocumentInfo()获取元数据,使用.addpage()合并PDF等。
摘要由CSDN通过智能技术生成

介绍

PyPDF2 是一个纯 Python 包,可通过使用 PyPDF2 包在 Python 中处理已先存在的 PDF。

  1. 提取 PDF 中的文档信息
  2. 旋转页面
  3. 合并 PDF
  4. 拆分 PDF
  5. 添加水印
  6. 加密 PDF
1、提取文档信息

使用 PyPDF2 从 PDF 中提取元数据和一些文本,尤其是当在预先存在的 PDF 文件上执行某些类型的自动化时是非常有用的。
以下是当前可以提取的数据:

  • Author
  • Creator
  • Producer
  • Subject
  • Title
  • Number of page

可以在自己的电脑上随便找一个 PDF 文件进行尝试操作。下面是使用该 PDF 编写一些代码,并了解如何访问这些属性:

from PyPDF2 import PdfFileReader

def extract_information(pdf_path):
    with open(pdf_path, 'rb') as f:
        pdf = PdfFileReader(f)
        information = pdf.getDocumentInfo()
        number_of_pages = pdf.getNumPages()

    txt = f"""
    Information about {pdf_path}:

    Author: {information.author}
    Creator: {information.creator}
    Producer: {information.producer}
    Subject: {information.subject}
    Title: {information.title}
    Number of pages: {number_of_pages}
    """

    print(txt)
    return information

if __name__ == '__main__':
    path = 'xxxx.pdf'
    extract_information(path)

首先从 PyPDF2 包导入 PdfFileReader。PdfFileReader 是一个具有多种与 PDF 文件交互的方法的类。在此示例中,我们调用了.getDocumentInfo(),它将返回 DocumentInformation 的实例, 包含了我们感兴趣的大部分信息。我们还可以在 reader 对象上调用.getNumPages(),让它返回文档中的页数。

information 这个变量具有多个实例属性,可以使用这些属性从文档中获取所需的其余元数据。我们可以打印出该信息并将其返回以备将来使用。

虽然 PyPDF2 具有.extractText(),可以在其页面对象上使用提取文本(本例中未显示),但它的效果不是很好。有些 PDF 会返回文本,有些会返回空字符串。如果要从 PDF 中提取文本,建议应该看一下 PDFMiner 项目。PDFMiner 更加强大,专门用于从 PDF 中提取文本。

2、旋转页面

有时候 PDF 是横向模式而不是纵向模式,甚至是颠倒的。当有人扫描文档为 PDF 或电子邮件时,很可能会发生这种情况。我们可以打印出文档并阅读纸质版本,也可以使用 Python 的强大功能来旋转有问题的页面。

下面看一下如何使用 PyPDF2 旋转文章的一些页面:

from PyPDF2 import PdfFileReader, PdfFileWriter

def rotate_pages(pdf_path):
    pdf_writer = PdfFileWriter()
    pdf_reader = PdfFileReader(path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值