使用IRONPDF FOR PYTHON

如何在 Python 中查看 PDF 文件

发布 2023年七月2日
分享:

PDF (便携式文档格式)

PDF 是一种用于共享文件的流行文件格式。它是一种通用的文件信息格式,可在多种设备上查看,还可通过安全权限对其进行保护。

在 Python 中,有许多库可以用来读取和处理 PDF 文档。IronPDF 就是其中之一。IronPDF 是一个功能强大的库,为处理 PDF 文档提供了广泛的功能。

在本文中,我们将学习如何使用 IronPDF 库在 Python 中查看 PDF 文件。

IronPDF - Python 库

IronPDF 是一个功能强大的 Python 库,能让开发人员以编程方式处理 PDF 文件。使用 IronPDF,您可以轻松地从 PDF 文档中生成、操作和提取数据,使其成为执行各种 PDF 相关任务的通用工具。无论您是需要从头开始创建 PDF、修改现有 PDF 还是从 PDF 中提取内容,IronPDF 都能提供一套全面的功能来简化您的工作流程。

IronPDF Python 库的部分功能包括

  • 使用 HTML 或 URL 从头开始创建新的 PDF 文件
  • 编辑现有 PDF 文件
  • 旋转 PDF 页面
  • 从 PDF 文件中提取文本、元数据和图像
  • 将 PDF 文件转换为其他格式
  • 用密码和限制保护 PDF 文件
  • 分割和合并 PDF 文件

注意: IronPDF 会生成一个带水印的 PDF 数据文件。要去除水印,您需要获得 IronPDF 的许可证。如果您希望使用授权版本的 IronPDF,请访问 IronPDF 网站获取许可证密钥.

先决条件

在使用 Python 中的 IronPDF 之前,我们需要准备一些先决条件:

  1. Python安装:确保您的系统已安装 Python。IronPDF 兼容 Python 3.x 版本,因此请确保安装了兼容的 Python。

  2. IronPDF 库:安装 IronPDF 库以使用其功能。您可以使用 Python 软件包管理器安装它 (pip) 在命令行界面执行以下命令:
    :InstallCmd pip install ironpdf
  1. Tkinter 库:Tkinter 是 Python 的标准图形用户界面工具包。它用于为所提供代码片段中的 PDF 查看器创建图形用户界面。Tkinter 通常预装在 Python 中,但如果遇到任何问题,可以使用软件包管理器进行安装:
    :InstallCmd pip install tkinter
  1. 枕头库:Pillow 库是 Python 图像库的分叉库 (PIL) 并提供额外的图像处理功能。代码片段中使用它来加载和显示从 PDF 中提取的图像。使用软件包管理器安装 Pillow:
    :InstallCmd pip install pillow
  1. 集成开发环境 (IDE):使用集成开发环境来处理 Python 项目,可以大大提高您的开发体验。它能提供代码补全、调试和更简化的工作流程等功能。PyCharm 是一种流行的 Python 开发集成开发环境。您可以从 JetBrains 网站下载并安装 PyCharm。 (https://www.jetbrains.com/pycharm/).

  2. 文本编辑器:另外,如果您喜欢使用轻量级文本编辑器,也可以使用您选择的任何文本编辑器,如 Visual Studio Code、Sublime Text 或 Atom。这些编辑器为 Python 开发提供了语法高亮和其他有用的功能。您还可以使用 Python 自带的 IDLE 应用程序来创建 Python 脚本。

使用 PyCharm 创建 PDF 查看器项目

安装 PyCharm IDE 后,按照以下步骤创建 PyCharm python 项目:

  1. 启动 PyCharm: 从系统的应用程序启动器或桌面快捷方式打开 PyCharm。

  2. 创建新项目: 点击 "创建新项目 "或打开现有的 Python 项目。

    如何用 Python 将 PDF 转换为文本(教程):图 1

  3. 配置项目设置: 提供项目名称,并选择创建项目目录的位置。为项目选择 Python 解释器。然后点击 "创建"。

    如何用 Python 将 PDF 转换为文本(教程):图 2

  4. 创建源文件: PyCharm 将创建项目结构,包括一个主 Python 文件和一个存放附加源文件的目录。开始编写代码,然后点击运行按钮或按下 Shift+F10 来执行脚本。

使用 IronPDF 在 Python 中查看 PDF 文件的步骤

导入所需的库

首先,我们需要导入必要的库。在本例中,我们需要 osshutilironpdftkinterPIL 库。osshutil 库用于文件和文件夹操作,ironpdf 是处理 PDF 文件的库,tkinter 用于创建图形用户界面。 (图形用户界面)而 PIL 则用于图像处理。

import os, shutil, ironpdf
from tkinter import *
from PIL import Image, ImageTk
PYTHON

将 PDF 文档转换为图像

接下来,我们定义一个名为 "convert_pdf_to_images "的函数。该函数将 PDF 文件的路径作为输入。在函数中,我们使用 IronPDF 库从文件中加载 PDF 文档。然后,我们指定一个文件夹路径来存储提取的图像文件。IronPDF 的 pdf.RasterizeToImageFiles 方法用于将 PDF 的每个 PDF 页面转换为图像文件,并将其保存到指定的文件夹中。我们还创建了一个列表来存储图像路径。完整的代码示例如下:

def convert_pdf_to_images(pdf_file):
    pdf = ironpdf.PdfDocument.FromFile(pdf_file)
    # Extract all pages to a folder as image files
    folder_path = "images"
    pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
    # List to store the image paths
    image_paths = []
    # Get the list of image files in the folder
    for filename in os.listdir(folder_path):
        if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
            image_paths.append(os.path.join(folder_path, filename))
    return image_paths
PYTHON

要从 PDF 文档中提取文本,请访问此代码示例页面 链接.

关闭手柄窗口

为了在应用程序窗口关闭时清理提取的图像文件,我们定义了一个(n) on_closing "函数。在该函数中,我们使用 shutil.rmtree()方法删除整个images` 文件夹。我们还将此函数设置为关闭窗口时执行的协议。下面的代码有助于完成任务:

def on_closing():
    # Delete the images in the 'images' folder
    shutil.rmtree("images")
    window.destroy()

window.protocol("WM_DELETE_WINDOW", on_closing)
PYTHON

创建图形用户界面窗口

现在,我们使用 `Tk()构造函数。我们将窗口标题设置为 "图像查看器",并将 "on_closing"(关闭)设置为 "on_closing"。()函数作为处理窗口关闭的协议。

window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
PYTHON

创建可滚动画布

为了显示图像并实现滚动,我们创建了一个 Canvas 部件。Canvas widget 被配置为填充可用空间,并使用 pack(side=LEFT, fill=BOTH, expand=True).我们还创建了一个 Scrollbar 部件,并对其进行配置,以控制所有页面和画布的垂直滚动。

canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)
canvas.bind("<Configure>", lambda e:canvas.configure(scrollregion=canvas.bbox("all")))
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(int(-1*(e.delta/120)), "units"))
PYTHON

创建图像框架

接下来,我们在画布内创建一个 Frame 部件来放置图片。我们使用 create_window()将边框放置在画布中。在(0, 0)坐标和anchor='nw'` 参数确保帧从画布的左上角开始。

frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
PYTHON

将 PDF 文件转换为图像并显示

我们将 convert_pdf_to_images()函数,输入 PDF 文件的文件路径名。该函数将 PDF 页面提取为图像,并返回图像路径列表。我们遍历图像路径,并使用Image.open加载每个图像。()方法创建一个PhotoImage对象。然后,我们使用ImageTk.PhotoImage创建一个PhotoImage对象。()并创建一个Label` widget 来显示图片。

images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
    image = Image.open(image_path)
    photo = ImageTk.PhotoImage(image)
    label = Label(frame, image=photo)
    label.image = photo  # Store a reference to prevent garbage collection
    label.pack(pady=10)
PYTHON

输入文件

如何用 Python 将 PDF 转换为文本(教程):图 3

运行图形用户界面主循环

最后,我们使用 window.mainloop 运行主事件循环().这样可以确保图形用户界面窗口保持打开和响应状态,直到用户关闭为止。

window.mainloop()
PYTHON

输出

如何用 Python 将 PDF 转换为文本(教程):图 4

结论

在本教程中,我们学习了如何在 Python 中使用 IronPDF 库。我们介绍了打开 PDF 文件并将其转换为一系列图像文件所需的步骤,然后在可滚动画布中显示这些文件,并在应用程序关闭时处理已提取图像的清理工作。

有关 IronPDF Python 库的更多详情,请参阅 文献资料.

下载并安装 IronPDF Python 图书馆,并获得 免费试用 以测试其在商业开发中的完整功能。

< 前一页
如何在 Python 中从 PDF 提取文本
下一步 >
如何在Python中将PDF转换为文本(教程)

准备开始了吗? 版本: 2024.9 刚刚发布

免费 pip 安装 查看许可证 >