PYPDF2--PDF 操作的 Python 指南,作者:Konfuzio

您是否厌倦了手动编辑 PDF 文件?你是否想学习如何使用以下工具编辑 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:
        if 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 bookmarks 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']['/OCGs']
# 打印图层
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供应商 决定,而不是对一个解决方案本身进行编程。

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

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

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

Helm & Nagel GmbH 提供:使用 Python 处理 PDF 的 Konfuzio

用 Python 创建 PDF

您是否正在寻找一种直接从 Python 创建 PDF 文档的高效方法?Helm & Nagel GmbH公司的Konfuzio软件和功能强大的库可根据您的需求提供定制解决方案。使用 Konfuzio,您可以轻松生成新的 PDF 文档并编辑现有文档。该库允许您在 PDF 文件中添加文本、图像和其他元素,并自定义结构和元数据。这些功能对于创建具有专业布局的报告、发票和演示文稿特别有用。

用 Python 阅读 PDF

您想从 PDF 文档中提取和处理内容吗?Konfuzio 可为您提供先进的解决方案,用于从 PDF 文件中提取文本和图像。这些功能非常适合数据采集流程自动化、文档分析以及将 PDF 数据集成到数据库和系统中。此外,Konfuzio SDK 还允许您搜索 PDF 中的特定内容,提取和修改书签、注释和表格字段,以及处理 PDF 图层。

Helm & Nagel GmbH 团队随时乐意为您提供更多信息和个性化建议。请联系我们,了解 Konfuzio 和 PyPDF2 如何优化您的 PDF 工作流程。

"
"
Florian Zyprian 的头像

最新文章