2 image pil 转_pdf转图片,php语言和Java语言的两种方法
因項目的需求,需要預覽文件,如果直接使用各種渲染插件預覽pdf,兼容性太差,不同瀏覽器,不同終端,以及版本,問題太多,轉換思路,文檔轉圖片,那么兼容性問題就不存在了,大致思路如下
1. 各種不同文檔轉換為pdf文檔,java環境下使用JODConverter+openoffice,可以完成該操作,網上已經有很多教程講解,不懂Java語言的也可以輕松使用,安裝好這些環境之后,再php代碼中使用exec命令調用即可,
1.1 JODConverter安裝可以參考:http://www.webyang.net/Html/web/article_337.html,openoffice
1.2 安裝可以參考:https://blog.csdn.net/u013132051/article/details/53304562
1.3java環境安裝參考:https://blog.csdn.net/chengzhaoan2010/article/details/55045026
類似的文章還有很多,遇到相關問題都可以找到解決方案,
2. 通過上一步已經把所有文檔轉換為pdf格式文件,接下來就是把pdf轉成我們想要的圖片,首先我通過參考相關案列,使用php的imagick擴展進行處理這個問題,imagick擴展安裝參考:https://blog.csdn.net/young_phper/article/details/70614659
上代碼:
/*** Notes:pdf轉圖片 正在使用方法* @param $PDF 破地方文件路徑* @param $Path 圖片儲存路徑* @return array|bool|string 成功返回一個數組 包含轉換成功之后圖片的完整路徑 * @throws ImagickException*/public static function pdf2png1($PDF,$Path){set_time_limit(0);if(!extension_loaded('imagick')){return false;}$IM = new imagick();try{$IM->setResolution(120,120);$IM->setCompressionQuality(100);$IM->readImage($PDF);foreach ($IM as $Key => $Var){//做了處理 頁數超過25 只生成前25張圖片 根據自己需要進行修改if($Key>24){break;}$Var->setImageFormat('png');$Filename = $Path.'/'.md5($Key.time()).'.png';if($Var->writeImage($Filename) == true){$Return[] = $Filename;}}return $Return;} catch (Exception $e){return $e->getMessage();}}經測試,通過上述代碼可以成功轉換大部分文件,但是有部分文件因其他原因有可能轉換失敗,而且如果文件較大,則轉換過程會消耗大量內存,如果服務器配置較低的話,可能導致服務器服務暫時癱瘓,所以該方法只適合轉換少量文件,
作為一個功能來使用是可以的,如果作為核心來轉換大量文件是不可取的,那么我們只能另尋他法了
3.經過一段時間查找,找到了一種方法(類似方法還有很多,基本都是依賴于非php語言,對于一個php程序原來說可能是一件痛苦的事),java+IcePDF包,
總結
以上是生活随笔為你收集整理的2 image pil 转_pdf转图片,php语言和Java语言的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7隐藏文件夹显示怎么设置
- 下一篇: 怎么查看地址值_西门子S7-200 SM