這篇文章主要介紹“怎么基于PHP實(shí)現(xiàn)微信小程序pdf文件的預(yù)覽功能”,在日常操作中,相信很多人在怎么基于PHP實(shí)現(xiàn)微信小程序pdf文件的預(yù)覽功能問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么基于PHP實(shí)現(xiàn)微信小程序pdf文件的預(yù)覽功能”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
10年積累的網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有膠州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
前段時(shí)間文庫(kù)類微信小程序開發(fā)中遇到個(gè)問(wèn)題,就是要在小程序中預(yù)覽阿里云OSS中的pdf文件。微信官方給的方案就一個(gè),就是把文檔緩存到本地然后用資源管理器打開。

這樣寫問(wèn)題很明顯,pdf文件小的話還可以,當(dāng)pdf文件很大的時(shí)候,加載速度就會(huì)很慢。而且我只是需要預(yù)覽單純的前幾頁(yè)而已,也要把所有的文檔緩存下來(lái),在文件資源管理器中打開。體驗(yàn)非常不好。
方案一:使用小程序的webview,在網(wǎng)頁(yè)中實(shí)現(xiàn)預(yù)覽。體驗(yàn)還是可以的,但是遇到的問(wèn)題是 跨域問(wèn)題無(wú)法解決。
方案二:pdf.js。網(wǎng)上很多方案說(shuō)是用這個(gè),在服務(wù)器上寫個(gè)靜態(tài)頁(yè)面進(jìn)行預(yù)覽。這種方案的話,如果pdf文件在自己域名的服務(wù)器上還可以。但是如果文件在第三方的oss中,還是會(huì)碰到跨域問(wèn)題。而且線上小程序會(huì)出跳轉(zhuǎn)提示。pdf.js文檔比較難啃,各種兼容性,未知問(wèn)題無(wú)法預(yù)知。
方案三:pdf文件轉(zhuǎn)圖片,小程序端只是加載相應(yīng)的圖片。這種方案最完美了,不過(guò)比較考研后端開發(fā)者。我們的后端嫌麻煩,不給我整,無(wú)奈。我只能自己來(lái)整了。
將要預(yù)覽的pdf文件的鏈接,跟要預(yù)覽的頁(yè)數(shù)傳遞給后端。后端根據(jù)傳遞的參數(shù)去解析pdf文件,并把需要的那一頁(yè)返回為圖片即可。
服務(wù)器需要安裝圖像處理軟件(ImageMagick) 用于生成圖片
php需要安裝ImageMagick對(duì)應(yīng)的擴(kuò)展
服務(wù)器需要安裝 ghostscript 用于打開并解析pdf文件

通過(guò)參數(shù)p指定相應(yīng)的頁(yè)數(shù)以后,左邊就能顯示出相對(duì)應(yīng)頁(yè)數(shù)的圖片了。
下載并編譯安裝 ImageMagick
wget https://netix.dl.sourceforge.net/project/imagemagick/im7-src/ImageMagick-7.0.7-25.tar.gz tar -zxvf ImageMagick-7.0.7-25.tar.gz cd ImageMagick-7.0.7-25 ./configure make && make install
五條命令分別對(duì)應(yīng)的操作為:下載 解壓 打開目錄 配置 編譯安裝
為php安裝擴(kuò)展 imagemagick (我是在寶塔中一鍵安裝的)

還可以進(jìn)行編譯安裝,這里就暫且省略咯。
安裝 ghostscript
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs925/ghostscript-9.25.tar.gz tar zxvf ghostscript-9.25.tar.gz cd ghostscript-9.25 ./configure --prefix=/usr make && make install
五條命令分別對(duì)應(yīng)的操作為:下載 解壓 打開目錄 配置 編譯安裝
配置命令到linux中
echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig
php解析文件代碼
<?php
try{
$url = !empty($_GET['url']) ? $_GET['url'] : die('error');
$page = isset($_GET['p']) ? $_GET['p']-1 : '0';
$file_name = 'temp_' . mt_rand(1000,9999) . 'pdf';
file_put_contents( './'.$file_name,file_get_contents($url));
$imagePreview = new imagick('./'. $file_name . '['.$page.']');
$imagePreview->setImageFormat( "jpg" );
// $imagePreview->setResolution( 900, 900 );
header( "Content-Type: image/jpeg" );
echo $imagePreview;
unlink('./'. $file_name);
}catch(\Exception $e){
echo '發(fā)生錯(cuò)誤';
}注意:pdf文件的路徑可以是自己服務(wù)器的,也可以自己調(diào)整。
到此,關(guān)于“怎么基于PHP實(shí)現(xiàn)微信小程序pdf文件的預(yù)覽功能”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)題目:怎么基于PHP實(shí)現(xiàn)微信小程序pdf文件的預(yù)覽功能
文章網(wǎng)址:http://chinadenli.net/article22/ppdhjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷、全網(wǎng)營(yíng)銷推廣、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)