從 N 頁 PDF 取得 N 張 jpeg 影像

從 N 頁 PDF 取得 N 張 jpeg 影像

我有一個由 N 頁組成的 PDF。我想將此 PDF 轉換為 N 個 jpeg 映像(透過命令列,無需 Php、Java 或其他程式語言)。

我試著用 GHOSTSCRIPT 來做到這一點,但是 GS 給我的輸出從來都不像我正在尋找的輸出。

例子:

gs \
  -sDEVICE=jpeg \
  -dNOCACHE \
  -dDEVICEHEIGHTPOINTS=72 -dDEVICEWIDTHPOINTS=72 \
  -r300 \
  -g800x600 \
  -dFIXEDMEDIA \
  -dPDFFitPage \
  -sOutputFile=output/%d.jpg \
   mypdf.pdf 

產生 N 個解析度為 800x600 的 jpeg 影像,但 PDF 頁面似乎被裁剪且不適合。

我如何從 N 頁 PDF 中獲取 N 個 jpeg 圖像(從命令列)?

答案1

使用的命令列 alesdario 執行以下操作:

  1. 告訴 Ghostscript 使用 800px x 600px(像素)的輸出尺寸。
  2. 告訴 Ghostscript 使用 300dpi(每英吋點數)的解析度。
  3. 告訴 Ghostscript 使用 72 個裝置點的輸出尺寸。

三者不能同時起作用,因為如果兩者結合在一起,就會與第三者相矛盾。

在 300dpi 下,800x600 的畫布將產生 2.33 英寸 x 2 英寸(英寸)的物理尺寸 - 遠小於原始 PDF 頁面尺寸(可能)。

“只需從 N 頁 PDF 中獲取 N 個 jpeg 圖像(透過命令列)”使用這個指令:

 gs \
   -sDEVICE=jpeg \
   -o output/%d.jpg \
    mypdf.pdf

這是最簡單的調用,不會裁剪任何內容,並將使用 Ghostscript 的預設:

  • 影像解析度:JPEG 輸出為 72 dpi
  • 輸出影像的尺寸:這遵循對應的 PDF 頁面大小(但是,Ghostscript 假定 PDF 使用 720dpi)。

為了從N頁PDF中取得N張JPEG影像以預先定義的解析度和預先定義的影像尺寸,您需要自己進行一些計算並相應地設定-r-g值。例如,您可能希望 JPEG 為 200 dpi(來自 ISO A4 [595x842 pt] 的 PDF 頁面大小):這意味著-r200 -g1652x2338如果您想避免裁剪,則需要添加到命令列......這將使 Ghostscript重新採樣所有頁面和其中包含的物件都符合新的解析度。

答案2

嘗試圖像魔術師。我相信你想要的命令是:

$ convert -density 400 my.pdf my.jpeg

相關內容