从 Linux 命令行将 PDF 转换为图像从 Linux 命令行将 PDF 转换为图像从 Linux 命令行将 PDF 转换为图像从 Linux 命令行将 PDF 转换为图像
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

从 Linux 命令行将 PDF 转换为图像

将 PDF 文件转换为图像可以在 Linux 命令行中使用单个命令轻松完成。了解如何安装该实用程序、如何使用它以及如何自动执行设置。

什么是 poppler-utils ?

正如本文介绍中提到的,我们需要安装一个名为 poppler-utils 的小型实用程序集来帮助我们将 PDF 文件转换为图像。

poppler-utils 实用程序集允许我们将图像转换为 PDF,以及将 PDF 转换为图像。

安装 poppler-utils

要在基于 Debian/Apt 的 Linux 发行版(如 Ubuntu 和 Mint)上安装 poppler-utils,请执行以下操作:

sudo apt install poppler-utils

要在基于 RedHat/Yum 的 Linux 发行版(如 RedHat 和 Fedora)上安装 poppler-utils,请执行以下操作:

sudo yum install poppler-utils

将 PDF 转换为图像

所需的命令简单明了:

pdftoppm -png test.pdf test

使用 pdftopm 命令,我们可以将 PDF 转换为图像。我们指定我们想要一个 PNG 文件作为输出格式(通过使用 -png)并且我们的输入文件是 test.pdf。

我们指定为 test 的输出文件。 pdftopm 将自动添加页码后缀(如 -1)和扩展名(基于之前传递的 -png 选项)。

因此,输出文件名将是 test-1.png,我们接下来可以验证:

ls test-1.png
eog test-1.png 

任何后续页面将是 test-2.png 等。eog 命令(如果安装了 eog)将为您打开该文件,以便您可以查看输出,但您可以使用您喜欢的任何其他图像处理程序。

将 PDF 文件批量处理为图像

我们可以制作一个单行命令来批量处理所有具有给定名称的 PDF 文件到图像。然后我们可以简单地将此行添加到一个小脚本 .sh 文件中并进一步自动化,或者我们可以在需要将大量 PDF 文件转换为图像时在命令行中使用它。

ls --color=never test*.pdf | sed 's|.pdf||' | xargs -I{} pdftoppm {}.pdf -png {}

在此命令中,我们首先获取所有 PDF 文件的目录列表,这些文件的名称以 test 开头并以 .pdf 结尾,使用 ls -- color=从不测试*.pdf。

--color=never 很重要,因为 shell 颜色编码符号(如果激活,默认情况下)有时可能会混淆 xargs。

接下来,我们使用一个简单的 sed 替换命令将一个字面量点和 pdf 替换为空。换句话说,我们删除了 .pdf 文件扩展名。

这给了我们稍后仅在需要时将其添加回来的好处,即当为 pdftopm 指定输入文件时,而不是在为相同的 pdftopm 命令指定输出文件时,与我们上面的早期示例非常相似。

最后,我们使用 xargs 将每个 pdf 文件名(减去 .pdf)一个一个地发送到 pdftopm。我们将 -I 选项用于 xargs,它允许我们通过简单地使用 {} 来指定收到的任何输入(即缩短的 pdf 文件名)接下来的命令。

如您所见,我们的 pdftopm 命令现在看起来与第一个示例非常相似,每个单独的 pdf 文件名作为输入(重新以 .pdf 为后缀),并且作为输出不包含 .pdf 的 pdf 文件名。

让我们执行它:

这工作得很好:三个 PDF 文件,每一个都有一页,被转换为三个单独的 .png 文件(每页一个图像,在这种情况下每个 PDF 因为每个 PDF 只有一页),所有名称和后缀都正确。

作为 -png 选项的替代方案,还可以使用 -jpeg 来生成 JPEG 文件。使用 pdftopm --help 或 man pdftopm 查看完整的选项列表。

包起来

在本文中,我们看到了将 PDF 文件转换为图像文件是多么简单和直接,而且是直接从 Linux 命令行完成的!我们还研究了一种使此过程自动化的直接方法。 尽情享受吧!

©2015-2025 艾丽卡 support@alaica.com