簡體   English   中英

使用 sips 將 PDF 轉換為圖像

[英]Convert a PDF to Images using sips

我想使用 sip 將多頁的 pdf 轉換為單個圖像文件。 我知道還有其他幾種(可能更好)的解決方案可以做到這一點,但每台 Mac 上都安裝了 sips,不需要許可證。

我試過的:

sips -s format png myPDF.pdf --out myIMG.png

這給了我來自 pdf 的第一個站點的圖像。

現在我的問題:是否有可能為 pdf 的每一頁獲取圖像?

感謝您的意見!

我不知道您是否應該以這種方式做這種事情,但是macOS上的Automator有一個名為Split PDF的操作,您可以使用它來將 PDF 拆分為單獨的頁面,然后在每個頁面上使用sips ...

要啟動Automator ,請按空格並開始輸入Automator直到它猜對了,然后按 這顯然稱為Spotlight 搜索,是在 Mac 上查找任何內容的最快方法,但沒有人告訴您這一點!

然后創建一個新的Application ,並選擇左側的PDFs (以紅色突出顯示),然后選擇Split PDF (也以紅色顯示)並將其拖到右側的“工作區”中。

在此處輸入圖片說明

我把它保存為splitter

然后我啟動了終端——與上面啟動Automator相同的Spotlight 搜索方法,但開始輸入Terminal

現在轉到您保存splitter ,您將看到splitter.app

ls -ld splitter*
drwxr-xr-x@ 3 mark  staff  96 27 Nov 12:09 splitter.app

現在我想拆分一個名為"a.pdf"的 10 頁文檔,所以我運行:

echo "a.pdf" | automator -i - ./splitter.app

樣本輸出

2018-11-27 12:15:21.200 automator[24004:3655998] Cache location entry for /Applications/Photos.app in cache file at /Users/mark/Library/Caches/com.apple.automator.actionCache-bundleLocations.plist is not valid: (null)
(
  "/Users/mark/Desktop/a-page1.pdf",
  "/Users/mark/Desktop/a-page2.pdf",
  "/Users/mark/Desktop/a-page3.pdf",
  "/Users/mark/Desktop/a-page4.pdf",
  "/Users/mark/Desktop/a-page5.pdf",
  "/Users/mark/Desktop/a-page6.pdf",
  "/Users/mark/Desktop/a-page7.pdf",
  "/Users/mark/Desktop/a-page8.pdf",
  "/Users/mark/Desktop/a-page9.pdf",
  "/Users/mark/Desktop/a-page10.pdf"
)

它在我的桌面上輸出 10 個單獨的 1 頁 PDF 文檔,以輸出命名。


我不知道關於“照片應用”緩存文件的警告是什么意思,所以如果有人知道,也許他們會告訴我這是什么意思以及如何擺脫它。


此外,我認為 Automator 以某種方式從/System/Library/Automator/Split PDF.action調用操作:

file "/System/Library/Automator/Split PDF.action/Contents/MacOS/Split PDF" 


/System/Library/Automator/Split PDF.action/Contents/MacOS/Split PDF: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [i386:Mach-O bundle i386]
/System/Library/Automator/Split PDF.action/Contents/MacOS/Split PDF (for architecture x86_64):  Mach-O 64-bit bundle x86_64
/System/Library/Automator/Split PDF.action/Contents/MacOS/Split PDF (for architecture i386):    Mach-O bundle i386

但是,我不知道如何從終端執行/調用它,而無需啟動/編寫任何Automator 的東西。 所以,如果有人(@vadian)知道,我也很想知道! 它似乎是一個包,但如果我在mdls上運行mdls ,則沒有列出包標識符,因此我無法運行它:

open -b <BUNDLE-IDENTIFIER>

這將做到這一點,並讓您設置光柵化的分辨率:

sips -s format png in.pdf -z 1024 1024 --out out.png

對於目錄和子目錄中的所有 pdf 文件:

find . -name "*.pdf" -exec sips -s format png {} -z 1024 1024 --out {}.png \;

其中的-exec部分將其余部分作為每個匹配文件的命令執行,直到\\; 終止符,同時用它找到的每個文件替換{} 超級好用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM