当前位置: 首页 > java >正文

如何在终端/命令行中把PDF的每一页转换成图片(PNG)

今天被对象安排了一个任务:
请添加图片描述

之前自己其实也有这个需要,但是吧,我懒:量少拖拽,量大就放弃。但这次躲不过去了,所以研究了一下有什么工具可以做到这个需求。

本文记录我这次发现的使用 XpdfReader 的方法。因为虽然之前偷懒的方法不用额外安装软件,但是太麻烦了,而且这个方法只能在 Mac 上用,不方便。

安装XpdfReader

首先下载和安装 XpdfReader,有两种途径:Homebrew 和官网下载。

Homebrew 就直接brew install xpdf

或者在 XpdfReader 官网 就可以找到:

请添加图片描述

由于 Mac 上只有 CLI 版本,所以这里使用 CLI 版本演示。

下载解压后内容如下:
请添加图片描述
binARMbin64分别针对 ARM 和 X86 架构的可执行文件,内容如下:

请添加图片描述

我们要用的是这里的pdftopng,可以将 PDF 转换成 PNG。

如果你不熟悉终端/命令行,那么请看我的另外两篇博客,这里不再多说了。
macOS在终端上如何直接使用脚本或者下载的程序
Linux——如何直接使用脚本(配置$PATH变量中包含的所有bin目录)

如何使用

这里使用pdftopng,命令很简单,下面是我使用的:

% pdftopng -r 300 -verbose 1.pdf 贴纸
[processing page 1]
[processing page 2]
[processing page 3]
[processing page 4]
[processing page 5]
[processing page 6]
[processing page 7]
[processing page 8]
[processing page 9]

这里的选项含义如下:

  • -r 300:DPI,默认是 150。由于我对象要打印贴纸,所以我设置的比较高。
  • -verbose:是为了显示处理了那些,就是下面的[processing page 1]这些内容,没这个选项就不打印这些。
  • 1.pdf:是转换的 PDF 文件。
  • 贴纸:这里的选项是生成文件的前缀,比如生成的 PNG 文件名如下(后面的序号是取决于页号):
    请添加图片描述
    所以如果你不想看到/不需要当前处理信息,也不需要设置 DPI,那么直接下面这样的命令就行:
% pdftopng 1.pdf 贴纸

这也是最简命令了。

希望能帮到有需要的人~

http://www.xdnf.cn/news/6145.html

相关文章:

  • 从0开始学linux韦东山教程第三章问题小结(4)
  • 易学探索助手-个人记录(十)
  • redis 缓存穿透,缓存击穿,缓存雪崩
  • VCS X-PROP建模以及在方针中的应用
  • 利用vba替换word中多个表格,相邻单元格的文字
  • 用Array.from实现创建一个1-100的数组
  • 探索自我重复的奇妙之旅--递归
  • 最小区域法求平面度及八种算法思路
  • AI降重率工具推荐:提升论文原创度的利器
  • windows文件共享另一台电脑资源管理器网络文件夹无法找到机器
  • AI Agent开发第66课-彻底消除RAG知识库幻觉-带推理的RAG
  • 设计模式(9)——创建型模式之工厂方法
  • FlashInfer - SparseAttention(稀疏注意力)只计算部分有意义的注意力连接,而非全部 token 对
  • x-IMU matlab zupt惯性室内定位算法
  • 微服务调试问题总结
  • 数据预处理之数据平滑处理详解
  • 学习黑客蓝牙技术详解
  • 在K8S集群中部署EFK日志收集
  • 【LINUX操作系统】线程同步与互斥
  • 《Python星球日记》 第72天:问答系统与信息检索
  • VCS758电流传感器芯片:国产化替代与高精度电流检测解决方案
  • Elasticsearch索引设计与调优
  • 数字IC后端设计实现 | 如何自动删除Innovus 中冗余的hold buffer?
  • 季报中的FPGA行业:U型反转,春江水暖
  • 高压差分探头的阻抗选择
  • Apollo学习——键盘控制速度
  • mapreduce
  • AI大模型从0到1记录学习 linux day23
  • 深入理解SpringBoot中的SpringCache缓存技术
  • deepseek梳理java高级开发工程师微服务面试题-进阶版