天天看點

轉換pdf 為 png

在項目開發中經常會有将“word轉換為pdf”、“将word轉換為圖檔”、将“pdf轉換為圖檔” 的需求。

針對如上需求,寫一下自己在這方面的實作:

1、word轉換為pdf ,前面有文章已經寫過

2、word轉換為圖檔,實作思路為 word——>pdf——>png   第一步轉換參考前面寫過的文章

3、pdf轉換為圖檔,我們實作思路 pdf——>png

本文重點說一下 pdf 到 png 的轉換:

首先我們要做如下準備:

1、GhostScript 安裝

2、ImageMagick 安裝

下面做一下分解:

一、GhostScript 安裝和測試

我們先下載下傳安裝 GhostScript,官網位址:http://ghostscript.com/download/gsdnld.html(我已經下載下傳過一個免安裝版本,官方9.15版本 ,這個建議大家使用官方最新版本。

(這裡下載下傳可以直接運作的版本 ghostscript-9.15-linux-x86_64.tgz ,下載下傳解壓後,直接複制到 /usr/bin 目錄下,命名為gs 即可,如果/usr/bin目錄下已經存在該檔案,記得備份之前的檔案後再拷貝過去)

安裝成功後,輸入指令 gs -version 如果有如下輸出,說明安裝成功,列印的是版本。

GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.           

然後用如下指令轉換輸出一個pdf測試,指令:

gs -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dEPSCrop -sOutputFile=testfilepng/%d.png testfile.pdf           

執行指令後,會有如下輸出,其中Page為轉換的頁碼,其他輸出是因為一些字型問題而出現的資料,隻要能輸出到最後一頁中間不中斷,就說明檔案解析轉換成功,下面是我轉換的一個檔案的輸出内容:

GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 38.
Page 1
Page 2
Page 3
Substituting font Helvetica for ArialMT.
Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 5956124 4561384 9518216 8029777 3 done.
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... 6013452 4628661 10043208 8183225 3 done.
Page 4
Page 5
Page 6           

至此,GhostScript 的安裝和測試已經成功。

PS:關于 gs 指令的很多參數,需要的對照官網進行研究吧。很強大的。

二、ImageMagick 安裝

下載下傳安裝 ImageMagick,官網下載下傳位址:http://www.imagemagick.org/script/download.php ,其中有很多連接配接,找一個能下載下傳的下載下傳安裝(都是國外網站,需要的就撥一下VPN吧)

安裝成功後,使用指令 convert -version 檢視ImageMagick 版本号,驗證是否安裝成功,如下:

[root@localhost ghostscript-9.15-linux-x86_64]# convert -version
Version: ImageMagick 6.5.4-7 2012-04-10 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC           

執行指令,進行pdf轉換測試:

convert /opt/shanhy/testfile.pdf /opt/shanhy/testpdfpng/%d.$pic           

至此,ImageMagick 安裝和測試完成。

有的朋友可能會問,上面我們使用 ghostscript 已經可以轉換檔案圖檔,為什麼還要安裝ImageMagick呢?

這裡解釋一下:ImageMagick 的 convert 指令重點和強大之處是圖檔的處理能力,很多時候,我們需要直接對pdf轉換出來的圖檔進行處理。這種情況下,使用 convert 指令會滿足我們很多需求,關于 convert 指令的很多參數,大家檢視關于 ImageMagick 的資料了解,這裡也不做贅述。

另外說一下:convert 指令直接把pdf 轉換為圖檔,是依賴的 ghostscript 庫,是以 ghostscript 可以單獨進行圖檔轉換,而 convert 在安裝ghostscript 之前,隻能進行單獨的圖檔處理,不能直接轉換 pdf 為圖檔。

最後跟大家提一下,在我們的業務應用實作中,建議大家講檔案轉換的指令寫到shell 腳本中,使用程式調用腳本。雖然也可以通過代碼調用 api 實作,不過我覺得還是使用系統的shell 處理,效率會高一些。

謝謝!

繼續閱讀