pdftoppm
是 Linux 系統上專門用來將 PDF 檔案轉為圖檔的工具,轉檔速度比 ImageMagick 更快,效果也很相當不錯。其基本使用方式為:
# 使用 pdftoppm 將 PDF 檔轉為 JPG 圖片檔 pdftoppm -r 300 -jpeg input.pdf output
其中 -r
參數可用來指定每英寸點數(dpi),而 -jpeg
是指定輸出圖檔格式為 JPG,這裡的輸出檔名不需要寫副檔名,pdftoppm
會以使用者指定的輸出檔名,再加上自動的編號與副檔名來產生每一頁的圖檔名稱,把 PDF 的每一頁各儲存成一張圖檔。轉出來的結果會像這樣:
pdftoppm
這個工具在轉換 PDF 檔案時,若不指定輸出檔案格式的話,它會將 PDF 的頁面轉為 PPM 這種圖檔格式:
# 預設會轉換為 PPM 圖片檔 pdftoppm -r 300 input.pdf output
但 PPM 這種圖檔格式比較不常用,通常我們都會加上一些參數,輸出比較常用的圖檔格式,除了 JPG 之外,它還支援 PNG 與 TIFF 等格式:
# 轉換為 PNG 圖片檔 pdftoppm -png -r 300 input.pdf output # 轉換為 TIFF 圖片檔 pdftoppm -tiff -r 300 input.pdf output
pdftoppm
支援好幾種頁面選擇方式。-f
參數與 -l
參數可以分別用來指定開始的頁碼與結束的頁碼(頁碼從 1
開始),例如:
# 只抽取 input.pdf 的第二頁到第五頁,轉為 JPG 檔 pdftoppm -jpeg -r 300 -f 2 -l 5 input.pdf output
也可以使用 -o
與 -e
參數分別指定奇數頁與偶數頁:
# 只抽取 input.pdf 的奇數頁,轉為 JPG 檔 pdftoppm -jpeg -r 300 -o input.pdf output # 只抽取 input.pdf 的偶數頁,轉為 JPG 檔 pdftoppm -jpeg -r 300 -e input.pdf output
若只需要轉換 PDF 檔的單一頁,可以加上 -singlefile
參數,這樣的話輸出檔名就不會加上任何編號:
# 只轉換第一頁,輸出檔名不加編號 pdftoppm -jpeg -r 300 -singlefile input.pdf output # 只轉換第三頁,輸出檔名不加編號 pdftoppm -jpeg -r 300 -f 3 -singlefile input.pdf output
若要直接指定輸出圖檔的解析度,可以使用 -scale-to
參數,它可以讓使用者指定輸出圖檔的長邊長度,而比較短的那一邊的長度,則會依照比例自動計算:
# 讓輸出圖檔的長邊長度為 640 像素 pdftoppm -jpeg -scale-to 640 input.pdf output
若要直接指定寬度或高度,可以用 -scale-to-x
或 -scale-to-y
參數,通常建議的作法是只指定寬度或高度,另一個數值設定為 -1
,讓程式自動依比例計算,這樣輸出的圖檔才不會變形:
# 讓輸出圖檔的寬度為 640 像素,高度依比例調整 pdftoppm -jpeg -scale-to-x 640 -scale-to-y -1 input.pdf output # 讓輸出圖檔的高度為 640 像素,寬度依比例調整 pdftoppm -jpeg -scale-to-x -1 -scale-to-y 640 input.pdf output
若要裁切輸出的圖形,只留下部份的區域,可以使用 -W
與 -H
指定區域的大小,並以 -x
與 -y
指定區域的位置,例如:
# 裁切一個寬度為 640 像素、高度為 360 像素的區域, # 此區域距離左邊界 60 像素、距離上邊界 80 像素 pdftoppm -jpeg -x 60 -y 80 -W 640 -H 360 input.pdf output
輸出的結果會像這樣: