使用Sip将PDF转换为图像

时间:2018-11-27 09:38:46

标签: macos shell pdf sips

我想使用sip将具有多个页面的pdf转换为单个图像文件。我知道还有其他几种(可能更好)的解决方案,但是在每台Mac上都安装了sip,不需要许可证。

我尝试过的事情:

CryptGenRandom

这给了我pdf中第一个站点的图像。

现在我的问题:是否有可能为pdf的每一页获取图像?

谢谢您的指教!

2 个答案:

答案 0 :(得分:1)

我不知道您是否应该以这种方式进行这种操作,但是 macOS 上的 Automator 具有一个名为Split PDF的操作,可以用来将PDF拆分为单独的页面,然后在每个页面上使用sips ...

要启动 Automator ,请按 space 并开始键入Automator,直到猜对并按下↩< / kbd>。显然,这称为 Spotlight Search ,它是在Mac上查找任何内容的最快方法,但是没有人告诉您!

然后创建一个新的 Application ,然后选择左侧的PDFs(以红色突出显示),然后选择Split PDF(也以红色显示)并将其拖到“工作-区域”。

enter image description here

我将其另存为splitter

然后我启动了 Terminal -与上述 Automator 相同的 Spotlight Search 方法,但是开始输入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文档。


我不知道有关“ Photos App”缓存文件的警告的含义,所以如果有人知道,也许他们会告诉我它的含义以及如何消除它。


此外,我认为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

但是,我不知道如何从Terminal执行/调用它,而无需启动/编写任何 Automator 东西。因此,如果有人,@ vadian也许知道,我也想知道!它似乎是一个捆绑软件,但是如果我在其上运行mdls,则没有列出捆绑软件标识符,因此无法使用以下命令来运行它:

open -b <BUNDLE-IDENTIFIER>

答案 1 :(得分:1)

这将完成此操作,并让您设置光栅化的分辨率:

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