PYTHON PDF 工具

如何在Python中将PDF转换为图像

发布 2023年六月30日
分享:

PDF(便携式文档格式) 是在互联网上传输数据时最常用的文件格式,因为它保留了内容格式,并有助于通过安全权限确保数据安全。 在某些情况下,我们需要将 PDF 文件转换为 JPG 图像或任何其他图像格式,如 PNG、BMP、TIFF 或 GIF。 有很多在线资源可用于 JPG 转换,但如果能用 Python 创建我们自己的 PDF 到图片转换工具,那该有多酷?

什么是 Python?

Python 是一种高级编程语言,用于构建软件应用程序、网站、自动执行任务、进行数据分析以及执行人工智能和机器学习任务。 由于是解释型语言,它也是一种脚本语言,因此在快速开发和测试方面功能更强大。

要创建 PDF 到图像的转换器,我们需要在计算机上安装 Python 3+。 从官方网站.

在本文中,我们将使用 Python PDF 转图像库创建自己的图像转换应用程序。 为此,我们将使用 Python 最流行的两个库:PDF2Image 和 PyMuPDF。

如何用 Python 将 PDF 文件转换为图像文件

  1. 安装 Python 库,将 PDF 转换为图像。

  2. 从任何位置加载现有 PDF 文件。

  3. 利用转换方法。

  4. 迭代文件页面。

  5. 使用保存方法将每页保存为 JPG 或 PNG 图像。

创建一个新的 Python 文件

  1. 打开 Python IDLE 应用程序,按 Ctrl + N 键。 将打开文本编辑器。 您可以使用自己喜欢的文本编辑器进行翻译。

  2. 将文件保存为 pdf2image.py,与要转换为图像的 PDF 文件保存在同一位置。

    我们要使用的输入 PDF 文件包含 28 页,内容如下:

    如何用 Python 将 PDF 转换为图像:图 1

使用 PDF2Image 库将 PDF 文件转换为图像文件

1.安装 PDF2Image Python 库

PDF2Image 是一个封装了 pdftocairopdftoppm 的模块。 它适用于 Python 3.7 以上版本,可将 PDF 转换为 PIL 图像对象。 其以前的发布历史显示,它仅封装了 pdftoppm 以将 PDF 转换为图像,并且仅在 Python 3+ 上运行。

要安装 pdf2image 软件包,请打开 Windows 命令提示符或 Windows PowerShell 并使用以下 pip 命令:

pip install pdf2image

ip(首选安装程序)是 Python 的软件包管理器。 它下载并安装第三方软件包,这些软件包提供 Python 标准库中没有的特性和功能。

注: 要从命令行的任何位置执行此命令,必须将 Python 添加到 PATH。 对于 Python 3+,建议使用 pip3,因为它是 pip 的更新版本。

2.安装 Poppler

Poppler 是一个用于处理 PDF 文件的免费开源库。 该工具用于渲染 PDF 文件、读取内容和修改 PDF 文件中的内容。 它通常被 Linux 用户使用。 不过,对于 Windows,我们需要下载最新版本的 Poppler。

适用于 Windows

Windows 用户可在此处下载最新版本的 Poppler:@oschwartz10612 版本. 然后,您需要将 bin/folder 添加到 PATH 环境变量中。

适用于 Mac

Mac 用户还必须安装Poppler. 可通过以下方式安装酿酒:

brew install poppler

适用于 Linux

大多数 Linux 发行版都自带 pdftoppmpdftocairo 命令行实用程序。 如果没有安装这些实用程序,可以使用软件包管理器安装 poppler-utils

用于平台无关性(使用 conda)

  1. 安装 poppler
    :InstallCmd conda install -c conda-forge poppler
  1. 安装 pdf2image:
    :InstallCmd pip install pdf2image

现在一切准备就绪,让我们开始编写将 PDF 转换为图像的代码。

3.将 PDF 文件转换为图像文件的代码

以下代码将对输入的 PDF 文件执行图像转换:

from pdf2image import convert_from_path

print("Please Wait while the file is being loaded.")
file = convert_from_path('file.pdf')

for i in range(len(file)):
    # save pdf as jpg
    print("Progress: " + str(round(i/len(file) * 100)) + "%")
    file [i].save('page'+ str(i+1) +'.jpg', 'JPEG')

print("Conversion Successful")
PYTHON

在上述代码中,我们首先使用 convert_from_path 方法打开文件。 此方法可打开指定路径下的文件。 然后,我们循环浏览 PDF 文件的每一页,将其转换为 JPG 图像。 最后,使用 save 方法将每个转换后的页面保存为 JPG 图像文件。现在,执行程序并等待转换完成。

输出的图像文件与程序保存在同一文件夹中。

如何用 Python 将 PDF 转换为图像:图 2

如何用 Python 将 PDF 转换为图像:图 3

使用 PyMuPDF 库将 PDF 文件转换为图像

1.安装 PyMuPDF Python 库

PyMuPDF 是 MuPDF 的 Python 扩展绑定,MuPDF 是一个轻量级电子书、PDF 和 XPS 查看器、渲染器和工具包。 它可用于将 PDF 转换为 JPG 或 PNG 等其他格式。 PyMuPDF 适用于 Python 3.7 以上版本。

要安装 PyMuPDF 软件包,请打开 Windows 命令提示符或 Windows PowerShell 并使用以下 pip 命令:

pip3 install pymupdf

请注意,PyMuPDF 并不像 PDF2Image 软件包那样需要任何额外的库。

2.将 PDF 文件转换为图像的代码

以下代码将从 PyMuPDF 中导入 fitz 模块,这样我们就可以将 PDF 转换为图像:

import fitz

doc = fitz.open("file.pdf")

for x in range(len(doc)):
    page = doc.load_page(x)  # number of page
    pix = page.get_pixmap()
    output = "output/pdfpage"+str(x+1)+".png" # first create the output folder in the destination
    pix.save(output)

doc.close()
PYTHON

在上述代码中,文件名作为参数传递给 fitz.open 方法以打开文件。接下来,我会循环浏览整个文件,并分别加载每个页面。 使用 get_pixmap 方法将每个文档页面转换为图像像素,并使用 save 方法将生成的图像保存到输出文件夹中。 最后,将打开的文档关闭以释放内存。

与 PDF2Image 相比,PyMuPDF 在将 PDF 转换为 PNG 时速度更快。 PDF2Image 由于其压缩率,在处理 PNG 格式时可能会比较慢。

输出结果与 PDF2Image 相同:

如何用 Python 将 PDF 转换为图像:图 4

在 C&num 中渲染 PDF 到图像的转换;

IronPDF 库

IronPDFPDF 是一个用于生成、读取和处理 PDF 文件的库。 它的专长在于借助 Chromium 引擎将 HTML 渲染成 PDF。这一功能使它深受需要将 HTML 文件或 URL 转换为 PDF 文档的开发人员的欢迎。 此外,它还提供从各种格式到 PDF 文件的转换。

您还可以使用两行代码将 PDF 文件光栅化为图像。 以下代码演示了如何将 PDF 转换为不同的图像格式:

from ironpdf import *

# One or more images as a list. This example selects all JPEG images in a specific 'assets' folder.
image_files = [os.path.join("assets", f) for f in os.listdir("assets") if f.lower().endswith(('.jpg', '.jpeg'))]

directory_list = List [str]()
for i in range(len(image_files)):
    directory_list.Add(image_files [i])

# Converts the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(directory_list).SaveAs("composite.pdf")

# Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
PYTHON

下载试用 IronPDF免费的.

< 前一页
如何在Python中将HTML转换为PDF

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

免费 pip 安装 查看许可证 >