pypdf2

PYPDF2 - PDF操作的Python指南 | Konfuzio

Florian Zyprian

你是否厌倦了手动编辑PDF文件?你想学习如何用Python编辑PDF吗?那么PyPDF2正是你所需要的。通过这个Python库,你可以合并、分割、加密、解密PDF文件等等。在本教程中,我们将涵盖以下主题。

  1. 安装PyPDF2及其依赖项

  2. 读取、写入和复制PDF文件

  3. 将几个PDF文件合并成一个

  4. 将一个PDF文件分割成几个文件

  5. 加密和解密PDF文件

  6. 从PDF中提取文本和图像

  7. 在PDF中添加水印和页码

我们还将PyPDF2与其他PDF编辑程序进行了比较,并讨论了其优势和局限性。有了PyPDF2,你可以将你的PDF工作流程自动化,并节省人工编辑的时间。在此了解如何开始使用。

安装PyPDF2

要使用PyPDF2,可以简单地通过pip安装。

  • 确保你的系统上安装了Python 2.7或Python 3.x。
  • 用pip安装PyPDF2。 pip安装PyPDF2

读取、写入和复制PDF文件

使用PyPDF2,你可以轻松地读取、写入和复制PDF文件。下面是一个例子。

输入PyPDF2

# 打开PDF文件
pdf_file = open('example.pdf', 'rb')

# 读取PDF文件
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 打印页数
print(pdf_reader.numPages)

# 获取第一页
page = pdf_reader.getPage(0)

# 从第一页提取文本
text = page.extractText()

# 打印该文本
print(text)

# 关闭该PDF文件
pdf_file.close()

将几个PDF文件合并成一个

如果你有几个PDF文件想合并成一个,用PyPDF2很容易。下面是一个例子。

输入PyPDF2

# 打开第一个PDF文件
pdf_file1 = open('example1.pdf', 'rb')

# 打开第二个PDF文件
pdf_file2 = open('example2.pdf', 'rb')

# 创建一个PDF合并文件
pdf_merger = PyPDF2.PdfFileMerger()

# 添加第一个PDF文件
pdf_merger.append(pdf_file1)

# 添加第二个PDF文件
pdf_merger.append(pdf_file2)

# 合并这些PDF文件
pdf_merger.write('merged.pdf')

# 关闭PDF文件
pdf_file1.close()
pdf_file2.close()

将一个PDF文件分割成几个文件

如果你有一个大的PDF文件,你想把它分割成小的文件,PyPDF2可以帮助你。下面是一个例子。

输入PyPDF2

# 打开PDF文件
pdf_file = open('example.pdf', 'rb')

# 创建一个PDF阅读器
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 获取页数
num_pages = pdf_reader.numPages

# 将PDF文件分割成多个文件
for page_num in range(num_pages):
    # 创建一个PDF写入器
    pdf_writer = PyPDF2.PdfFileWriter()

    # 获取页面
    page = pdf_reader.getPage(page_num)

    # 将该页添加到PDF写入器中
    pdf_writer.addPage(page)

    # 创建新的PDF文件
    new_file_name = 'page' + str(page_num) + ' .pdf
    new_file = open(new_file_name, 'wb')

   

PyPDF2还支持创建和编辑PDF文件。使用PyPDF2,你可以从头开始创建一个新的PDF文件或修改一个现有的文件。你可以向PDF文件添加文本、图像和其他元素,并改变其结构、属性和元数据。

PyPDF2最强大的功能之一是能够合并和分割PDF文件。你可以将多个PDF合并成一个文件,或者将一个大的PDF分割成几个小的文件。这对于组织和归档文件,以及创建报告和演示文稿都很有用。

除了这些核心功能之外,PyPDF2还提供了一系列用于处理PDF文件的工具和实用程序。这些工具包括

加密和解密的PDF

通过PyPDF2,你可以对PDF文件进行加密和解密,同时支持用户和所有者密码。在这里了解如何用PyPDF2对PDF文件进行加密。

输入PyPDF2

pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

pdf_writer = PyPDF2.PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(0))

pdf_writer.encrypt('user_password', 'owner_password')

result_pdf = open('encrypted.pdf', 'wb')
pdf_writer.write(result_pdf)
result_pdf.close()
pdf_file.close()

在这段代码中,我们首先打开PDF输入文件并创建一个PDF阅读器对象。然后,我们创建一个PDF写作对象,并将PDF输入文件的第一页加入其中。最后,我们用用户密码和所有者密码对PDF文件进行加密,并将结果保存为一个新文件。

用Python解密PDF文件

要解密一个PDF文件,你可以使用以下代码。

输入PyPDF2

pdf_file = open('encrypted.pdf', 'rb').
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

如果pdf_reader.isEncrypted:
    pdf_reader.decrypt('password')

page = pdf_reader.getPage(0)
text = page.extractText()

print(text)

pdf_file.close()

在这里,我们首先打开加密的PDF文件并创建一个PDF阅读对象。然后我们检查该PDF文件是否被加密,如果是的话,用密码解密。我们从PDF文件的第一页提取文本并输出到控制台。

从PDF中提取文本和图像

PyPDF2允许你从PDF文件中提取文本和图像,如果文本和图像被嵌入到数字原生PDF中,则有选项可以过滤和处理输出。如果不是这种情况,可以看看我们的 pytesseract教程 an.在这里你可以看到如何用PyPDF2从一个PDF文件中提取文本。

输入PyPDF2

pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

text = ''
for page in range(pdf_reader.getNumPages()):
    text += pdf_reader.getPage(page).extractText()

print(text)

pdf_file.close()

在这段代码中,我们首先打开PDF输入文件并创建一个PDF阅读器对象。然后我们循环浏览PDF文件的每一页并提取文本。我们将每一页的文本串联起来,并输出到控制台。

要从PDF文件中提取图像,你可以使用以下代码。

输入PyPDF2

pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

for page in range(pdf_reader.getNumPages()):
    xObject = pdf_reader.getPage(page).getObject()['/Resources']['/XObject].getObject()
    for obj in xObject:
        如果xObject[obj]['/Subtype'] == '/Image':
            size = (xObject[obj]['/Width'], xObject[obj]['/Height'] )
            data = xObject[obj]._data
            print(size, len(data))

pdf_file.close()

用PyPDF2将PDF转换为其他格式

PyPDF2是一个强大的Python库,允许你将PDF转换成其他格式,如HTML、XML和纯文本。如果你需要从一个PDF文件中提取某些数据,或者想在网站上显示PDF文件的内容,这就很有用。下面是一个用PyPDF2将PDF转换为纯文本的例子。

输入PyPDF2

# 打开PDF文件
pdf_file = open('example.pdf', 'rb')

# 创建一个PDF阅读器对象
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 获取PDF的第一页
page = pdf_reader.getPage(0)

# 从该页提取文本
text = page.extractText()

# 打印该文本
print(text)

# 关闭该PDF文件
pdf_file.close()

在这个例子中,我们以二进制模式打开PDF文件并创建一个PDF阅读器对象。然后我们得到PDF文件的第一页,并通过以下方法提取其中的文本 extractText().最后,提取的文本被打印出来。

用PyPDF2提取和修改书签、注释和表格字段

PyPDF2允许你提取和修改PDF文件中的各种元素,包括书签、注解和表格字段。如果你想自动执行某些任务或从PDF文件中提取某些数据,这可能很有用。下面是一个如何使用PyPDF2从PDF文件中提取书签的例子。

输入PyPDF2

# 打开PDF文件
pdf_file = open('example.pdf', 'rb')

# 创建一个PDF阅读器对象
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 从PDF中获取书签
bookmarks = pdf_reader.getOutlines()

# 打印书签
for bookmark in bookmarks:
    print(bookmark.title)

# 关闭PDF文件
pdf_file.close()

在这个例子中,我们以二进制模式打开PDF文件并创建一个PDF阅读器对象。然后我们使用方法 getOutlines()来提取PDF文件中的书签。最后,我们打印书签的标题。

用PyPDF2处理PDF层

PDF层,也被称为可选的内容组,允许你控制PDF文件中不同元素的可见性和外观。PyPDF2提供了一种处理PDF层的方法,这样你就可以改变或提取PDF中的特定层。下面是一个如何使用PyPDF2从一个PDF文件中提取特定层的例子。

输入PyPDF2

# 打开PDF文件
pdf_file = open('example.pdf', 'rb')

# 创建一个PDF阅读器对象
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 获取PDF的第一页
page = pdf_reader.getPage(0)

# 从该页获取图层
layers = page['/OCProperties']['/OCG']

# 打印图层
for layer in layers:
    print(layer)

# 关闭PDF文件
pdf_file.close()

在这个例子中,我们以二进制模式打开PDF文件并创建一个PDF阅读器对象。然后我们得到PDF文件的第一页,并通过语法从其中提取图层 ['/OCProperties'] ['/OCGs'].最后,我们输出图层的名称。在这个例子中,我们以二进制模式打开PDF文件并创建一个PDF阅读器对象。然后我们得到PDF文件的第一页,并通过语法从其中提取图层 ['/OCProperties'] ['/OCGs'].最后,我们给出了各层的名称。

PyPDF2是一个强大而灵活的库,用于在Python中处理PDF文件。无论你是需要创建、修改还是从PDF中提取信息,PyPDF2都提供了大量的工具和实用程序来帮助你完成工作。无论你是开发者、研究者还是仅仅需要经常与PDF打交道的人,PyPDF2都绝对值得一看。

PyPDF2与企业解决方案的比较:比较准确性、可扩展性和成本

有几个原因,为什么有人会选择一个 文件AI供应商 决定,而不是对一个解决方案本身进行编程。

  • 时间
    使用PyPDF2开发一个自定义的解决方案来提取和修改PDF数据可能会很耗时,特别是在要求复杂的情况下。使用文档人工智能供应商可以节省时间并加快进程,因此你可以专注于你的核心业务。
  • 专业知识
    处理和 萃取 PDF文件的处理是一项复杂的任务,需要对PDF规范和相关技术有深入了解。一个文档人工智能供应商有一个专门从事PDF处理和提取的专家团队,可以在整个过程中提供支持和指导。
  • 可扩展性
    随着您的业务增长,您需要处理和提取的PDF数据量也在增加。用PyPDF2开发和维护一个内部解决方案可能难以扩展和维护。有了文档人工智能供应商,你可以获得可扩展的基础设施和资源来处理大量的PDF数据。
  • 准确度
    从PDF中提取数据可能是一项困难的任务,特别是在处理不同的PDF版本、布局和结构时。一个文档人工智能供应商可以获得先进的OCR和数据提取技术,可以提高准确性和减少错误。
  • 费用
    使用PyPDF2开发和维护一个内部解决方案可能是昂贵的,特别是如果你需要雇用专家或购买专门的工具和软件。文档人工智能供应商提供了一个具有成本效益的替代方案,可以获得预先建立的模型和基础设施,因此你可以降低成本,专注于你的核心业务。

总的来说,使用一个 文件AI供应商 一个快速、具有成本效益和可扩展的解决方案,使您能够专注于您的业务,并将技术细节留给专家。

通过及时了解该领域的最新研究,保持领先。 深度学习和OCR应用 告知。用Konfuzio使你的工作流程自动化,减少你公司的数据输入成本。那么你还在等什么呢?继续阅读,并利用今天的机会与在线 OCR服务!

0条评论

Schreibe einen Kommentar

更多精彩文章

客户服务

智能客户服务自动化|人工智能2023年更新

客户服务中的智能自动化 如果你的客户服务团队能够集中精力处理重要事务,那会怎样?

阅读故事
在平板电脑上手拍,题词 发票,将发票数字化

用OCR AI实现发票数字化:使用中的优势

当你将发票数字化时,你可以快速、轻松地绕过成堆的纸质发票和文件。专业的文件管理应该是每个人的一部分。

阅读故事
权力的双标题

从数据到洞察力:Power BI简介

在一个数据已经成为重要商业工具的世界里,有效的展示和分析显示是...

阅读故事

    联系我们

    你对我们的产品、价格、安全、实施或其他主题有疑问吗?让我们的专家为您提供建议。

    箭头向上