pdf轉png

在項目開發中經常會有將“word轉換爲pdf”、“將word轉換爲圖片”、將“pdf轉換爲圖片” 的需求。

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

1、word轉換爲pdf ,前面有文章已經寫過,參考地址: http://blog.csdn.net/catoop/article/details/42527349

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版本 http://download.csdn.net/detail/catoop/8363115),這個建議大家使用官方最新版本。

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

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

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. GPL Ghostscript 9.15 (2014-09-22)  
  2. Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.  

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

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. gs -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dEPSCrop -sOutputFile=testfilepng/%d.png testfile.pdf  

執行命令後,會有如下輸出,其中Page爲轉換的頁碼,其他輸出是因爲一些字體問題而出現的數據,只要能輸出到最後一頁中間不中斷,就說明文件解析轉換成功,下面是我轉換的一個文件的輸出內容:

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. GPL Ghostscript 9.15 (2014-09-22)  
  2. Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.  
  3. This software comes with NO WARRANTY: see the file PUBLIC for details.  
  4. Processing pages 1 through 38.  
  5. Page 1  
  6. Page 2  
  7. Page 3  
  8. Substituting font Helvetica for ArialMT.  
  9. Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 5956124 4561384 9518216 8029777 3 done.  
  10. Substituting font Helvetica-Bold for Arial-BoldMT.  
  11. Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... 6013452 4628661 10043208 8183225 3 done.  
  12. Page 4  
  13. Page 5  
  14. Page 6  
至此,GhostScript 的安裝和測試已經成功。

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

二、ImageMagick 安裝

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

安裝成功後,使用命令 convert -version 查看ImageMagick 版本號,驗證是否安裝成功,如下:

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. [root@localhost ghostscript-9.15-linux-x86_64]# convert -version  
  2. Version: ImageMagick 6.5.4-7 2012-04-10 Q16 OpenMP http://www.imagemagick.org  
  3. Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC  

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

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. 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 處理,效率會高一些。


謝謝!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章