這裡介紹如何使用 ImageMagick 將 PDF 檔轉成高品質的預覽圖檔。
在網路上分享文章或是文件時,直接使用 PDF 檔案讓人下載瀏覽的方式,雖然可以呈現高品質的內容與排版,但是需要多一個下載步驟,就顯得不是很方便,另外如果遇到解析度比較高的 PDF 檔,檔案太大的話,下載也需要比較長的時間。
我們以 MagPi 第 35 期的 PDF 檔來示範,若要將整個 PDF 檔轉成一頁一頁的 jpeg
檔,可以執行:
convert MagPi35.pdf MagPi35.jpeg
執行完後,我們就會得到該 PDF 檔每一頁的轉換圖檔:
這是第一頁轉換出來的結果:
ImageMagick 預設會以 72dpi 的解析度來轉換 PDF 檔,這樣的解析度不是高,轉換出來的圖檔大小每一頁大約都在 200KB 以下,適合一般性的網路分享,而如果 PDF 檔的文字比較小,怕看不清楚的話,可以將解析度調高,例如調到 300dpi:
convert -density 300 MagPi35.pdf MagPi35.jpeg
當然調高解析度的話,圖檔大小就會增加,這個就看自己的需求來調整了。
使用這樣的指令稿可以在每一張圖檔上自動加上陰影:
for i in *.jpeg; do convert $i \( +clone -background black -shadow 75x50+10+20% \) +swap -background white -layers merge ${i%.jpeg}.shadow.jpeg done
其中陰影參數 -shadow
的部分有四個值,其代表的意義如下:
75
是透明度,單位是百分比,0
代表完全透明,100
代表完全不透明。50
是 ImageMagick 的陰影 sigma 參數,等同於一般繪圖軟體的陰影模糊半徑,這個值越大,陰影的範圍就越大,而且越模糊。+10
與 +20
分別是陰影的 x 方向與 y 方向位移,後面的 %
代表使用百分比為單位,若沒有加上 %
的話,預設的單位為像素。結果會像這樣:
如果您只需要觀看小縮圖,可以使用 ImageMagick 的 montage
指令將多張圖貼成一張:
montage -tile 3x2 -geometry +1+1 MagPi35-[012345].shadow.jpeg MagPi35-tile-3x2.jpg
這裡我們將 MagPi35-0.shadow.jpeg
到 MagPi35-5.shadow.jpeg
這六張圖合併成一張,輸出結果會像這樣:
ImageMagick 對於中文的 PDF 檔案也可以處理,這是處理的一個範例結果:
參考資料:OCS-Mag