如何在終端/命令行中把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.pswp.cn/web/80477.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80477.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80477.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mac安裝cast

背景 pycharm本地運行腳本時提示cast沒有安裝 問題原因 腳本嘗試調用cast命令(以太坊開發工具foundry中的子命令),但您的系統未安裝該工具。 從日志可見,錯誤發生在通過sysutil.py執行shell命令時。 解決方案 方法1&#xf…

【搭建Node-RED + MQTT Broker實現AI大模型交互】

搭建Node-RED MQTT Broker實現AI大模型交互 搭建Node-RED MQTT Broker實現AI大模型交互一、系統架構二、環境準備與安裝1. 安裝Node.js2. 安裝Mosquitto MQTT Broker3. 配置Mosquitto4. 安裝Node-RED5. 配置Node-RED監聽所有網絡接口6. 啟動Node-RED 三、Node-RED流程配置1. …

算法第21天 | 第77題. 組合、216. 組合總和 III、17. 電話號碼的字母組合

回溯基礎概念 什么是回溯? 如何實現回溯? 第77題. 組合 題目 思路與解法 carl的講解: 回溯搜索法 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:self.path []self.res []self.backtracking(n, k, 1)retu…

嵌入式硬件篇---拓展板

文章目錄 前言 前言 本文簡單介紹了拓展板的原理以及使用。

【深度學習基礎】從感知機到多層神經網絡:模型原理、結構與計算過程全解析

【深度學習基礎】從感知機到多層神經網絡:模型原理、結構與計算過程全解析 1. 引言 神經網絡的重要性: 作為人工智能的核心技術之一,神經網絡通過模擬人腦神經元的工作機制,成為解決復雜模式識別、預測和決策任務的利器。從圖像分…

sparkSQL讀入csv文件寫入mysql(2)

(二)創建數據庫和表 接下來,我們去創建一個新的數據庫,數據表,并插入一條數據。 -- 創建數據庫 CREATE DATABASE spark; -- 使用數據庫 USE spark;-- 創建表 create table person(id int, name char(20), age int);-- …

JVM如何處理多線程內存搶占問題

目錄 1、堆內存結構 2、運行時數據 3、內存分配機制 3.1、堆內存結構 3.2、內存分配方式 1、指針碰撞 2、空閑列表 4、jvm內存搶占方案 4.1、TLAB 4.2、CAS 4.3、鎖優化 4.4、逃逸分析與棧上分配 5、問題 5.1、內存分配競爭導致性能下降 5.2、偽共享&#xff08…

Ubuntu---omg又出bug了

自用遇到問題的合集 250518——桌面文件突然消失 ANS:參考博文

正則表達式與文本處理的藝術

引言 在前端開發領域,文本處理是一項核心技能。正則表達式作為一種強大的模式匹配工具,能夠幫助我們高效地處理各種復雜的文本操作任務。 正則表達式基礎 什么是正則表達式? 正則表達式是一種用于匹配字符串中字符組合的模式。它由一系列…

初學c語言15(字符和字符串函數)

一.字符串分類函數 頭文件:ctype.h 作用:判斷是什么類型的字符 函數舉例: 函數 符合條件就為真 islower判斷是否為小寫字符(a~z)isupper判斷是否為大寫字符(A~Z)isdigit十進制數字&#xf…

12-串口外設

一、串口外設的基本概述 1、基本定義 串口通信,通過在通信雙方之間以比特位(bit)的形式逐一發送或接收數據,實現了信息的有效傳遞。其通信方式不僅簡單可靠,而且成本很低。 2、stm32的串口 下面是兩個MCU的數據交互&…

NE555雙音門鈴實驗

1腳為地。通常被連接到電路共同接地。 2腳為觸發輸入端。 3腳為輸出端,輸出的電平狀態受觸發器的控制,而觸發器受上比較器6腳和下比較器2腳的控制。當觸發器接受上比較器A1從R腳輸入的高電平時,觸發器被置于復位狀態,3腳輸出低電…

Redis分布式鎖實現

概述 為什么要要分布式鎖 在并發編程中,我們通過鎖,來避免由于競爭而造成的數據不一致問題。 通常,我們以synchronized 、Lock來使用它。Java中的鎖,只能保證在同一個JVM進程內中執行 如果需要在分布式集群環境下的話&#xff0…

軟件設計師-錯題筆記-網絡基礎知識

1. 解析: 1.子網劃分相關知識: 在IPv4地址中,/27表示子網掩碼為255.255.255.224,它將一個C類網絡(默認子網掩碼255.255.255.0)進一步劃分 對于子網掩碼255.255.255.224,其對應的二進制為111…

Fine-Tuning Llama2 with LoRA

Fine-Tuning Llama2 with LoRA 1. What is LoRA?2. How does LoRA work?3. Applying LoRA to Llama2 models4. LoRA finetuning recipe in torchtune5. Trading off memory and model performance with LoRAModel ArgumentsReferences https://docs.pytorch.org/torchtune/ma…

python打卡day29

類的裝飾器 知識點回顧 類的裝飾器裝飾器思想的進一步理解:外部修改、動態類方法的定義:內部定義和外部定義 回顧一下,函數的裝飾器是 :接收一個函數,返回一個修改后的函數。類也有修飾器,類裝飾器本質上確…

十一、STM32入門學習之FREERTOS移植

目錄 一、FreeRTOS1、源碼下載:2、解壓源碼 二、移植步驟一:在需要移植的項目中新建myFreeRTOS的文件夾,用于存放FREERTOS的相關源碼步驟二:keil中包含相關文件夾和文件引用路徑步驟三:修改FreeRTOSConfig.h文件的相關…

2025 年十大網絡安全預測

隨著我們逐步邁向 2026 年,網絡安全領域正處于一個關鍵的轉折點,技術創新與數字威脅以前所未有的復雜態勢交織在一起。 地緣政治環境進一步加劇了這些網絡安全挑戰,國際犯罪組織利用先進的技術能力來追求戰略目標。 人工智能在這一不斷演變…

Mac 環境下 JDK 版本切換全指南

概要 在 macOS 上安裝了多個 JDK 后,可以通過系統自帶的 /usr/libexec/java_home 工具來查詢并切換不同版本的 Java。只需在終端中執行 /usr/libexec/java_home -V 列出所有已安裝的 JDK,然后將你想使用的版本路徑賦值給環境變量 JAVA_HOME,…

中級網絡工程師知識點6

1.堆疊方式可以共享使用交換機背板帶寬;級聯方式可以使用雙絞線將交換機連接在一起 2.光功率計是專門測量光功率大小的儀器,在對光纜進行檢測時,通過在光纜的發送端和接收端分別測量光功率,進而計算出光衰情況。 3.光時域反射計…