2 image pil 转_pdf转图片,php语言和Java语言的两种方法
因項(xiàng)目的需求,需要預(yù)覽文件,如果直接使用各種渲染插件預(yù)覽pdf,兼容性太差,不同瀏覽器,不同終端,以及版本,問題太多,轉(zhuǎn)換思路,文檔轉(zhuǎn)圖片,那么兼容性問題就不存在了,大致思路如下
1. 各種不同文檔轉(zhuǎn)換為pdf文檔,java環(huán)境下使用JODConverter+openoffice,可以完成該操作,網(wǎng)上已經(jīng)有很多教程講解,不懂Java語言的也可以輕松使用,安裝好這些環(huán)境之后,再php代碼中使用exec命令調(diào)用即可,
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環(huán)境安裝參考:https://blog.csdn.net/chengzhaoan2010/article/details/55045026
類似的文章還有很多,遇到相關(guān)問題都可以找到解決方案,
2. 通過上一步已經(jīng)把所有文檔轉(zhuǎn)換為pdf格式文件,接下來就是把pdf轉(zhuǎn)成我們想要的圖片,首先我通過參考相關(guān)案列,使用php的imagick擴(kuò)展進(jìn)行處理這個(gè)問題,imagick擴(kuò)展安裝參考:https://blog.csdn.net/young_phper/article/details/70614659
上代碼:
/*** Notes:pdf轉(zhuǎn)圖片 正在使用方法* @param $PDF 破地方文件路徑* @param $Path 圖片儲存路徑* @return array|bool|string 成功返回一個(gè)數(shù)組 包含轉(zhuǎn)換成功之后圖片的完整路徑 * @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){//做了處理 頁數(shù)超過25 只生成前25張圖片 根據(jù)自己需要進(jìn)行修改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();}}經(jīng)測試,通過上述代碼可以成功轉(zhuǎn)換大部分文件,但是有部分文件因其他原因有可能轉(zhuǎn)換失敗,而且如果文件較大,則轉(zhuǎn)換過程會消耗大量內(nèi)存,如果服務(wù)器配置較低的話,可能導(dǎo)致服務(wù)器服務(wù)暫時(shí)癱瘓,所以該方法只適合轉(zhuǎn)換少量文件,
作為一個(gè)功能來使用是可以的,如果作為核心來轉(zhuǎn)換大量文件是不可取的,那么我們只能另尋他法了
3.經(jīng)過一段時(shí)間查找,找到了一種方法(類似方法還有很多,基本都是依賴于非php語言,對于一個(gè)php程序原來說可能是一件痛苦的事),java+IcePDF包,
總結(jié)
以上是生活随笔為你收集整理的2 image pil 转_pdf转图片,php语言和Java语言的两种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7隐藏文件夹显示怎么设置
- 下一篇: 怎么查看地址值_西门子S7-200 SM