pdf.js移動端展示預(yù)覽打開pdf-pdfh5.js

pdf.js移動端展示預(yù)覽打開pdf-pdfh5.js

本插件基于pdf.js和jQuery柑晒,可手勢捏合縮放,支持懶加載(即分段加載)诱渤。

2019.07.18更新:增加npm install pdfh5使用方式寡夹,適應(yīng)于vue,使用方式和api見github https://github.com/gjTool/pdfh5钳降。

2019.07.17更新:新增配置參數(shù)lazy厚宰,支持懶加載腌巾。

2019.07.10更新:新增部分api,配置參數(shù)铲觉。內(nèi)部渲染機(jī)制改動:先畫canvas再轉(zhuǎn)為img 改成 直接渲染svg澈蝙。后續(xù)會放出api文檔。以及做成npm包引用(時間待定)

實(shí)例化:new Pdfh5(selector,options)

options可以不填:new Pdfh5(selector),不設(shè)置pdf路徑撵幽,會默認(rèn)拿地址欄的?file=后面的pdf路徑

例如:http://www.gjtool.cn/pdfh5/pdf.html?file=http://xxx.xxx.xxx/xxx.pdf

var pdfh5 = new Pdfh5('.pdfjs', { pdfurl: 'default.pdf' });

默認(rèn)優(yōu)先獲取瀏覽器地址欄灯荧?file=后面的地址,如果地址欄沒有盐杂,再拿配置項(xiàng)的pdfurl或者data來渲染pdf逗载。

配置項(xiàng)參數(shù) URIenable:false 可以無視地址欄參數(shù),只拿配置項(xiàng)的pdfurl或者data來渲染pdf

var pdfh5 = new Pdfh5('.pdfjs', {
        URIenable:false,
        pdfurl: "./default.pdf"
    });

例子:

html代碼:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <title>PDFH5</title>
    <link rel="stylesheet" href="css/style.css" />
    <link rel="stylesheet" href="css/pdfh5.css" />
</head>

<body>
    <div id="demo"></div>
    <script src="js/pdf.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/pdf.worker.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        //當(dāng)前默認(rèn)優(yōu)先獲取瀏覽器地址欄链烈?file=后面的地址厉斟,如果地址欄沒有,再拿配置項(xiàng)的pdfurl或者data來渲染pdf
        //優(yōu)先順序:  强衡?file= > pdfurl > data
        var pdfh5 = new Pdfh5('#demo', {
            pdfurl: "./default.pdf"
        });
        //配置項(xiàng)參數(shù) lazy:true 開啟懶加載擦秽,默認(rèn)是false,不開啟懶加載
        // var pdfh5 = new Pdfh5('#demo', {
        //     pdfurl: "./default.pdf",
        //     lazy:true 
        // });

        //配置項(xiàng)參數(shù) URIenable:false 可以無視地址欄參數(shù),只拿配置項(xiàng)的pdfurl或者data來渲染pdf
        // var pdfh5 = new Pdfh5('#demo', {
        //     URIenable:false,
        //     pdfurl: "./default.pdf"
        // });

        //pdf準(zhǔn)備開始渲染漩勤,此時可以拿到pdf總頁數(shù)
        pdfh5.on("ready", function () {
            console.log("總頁數(shù):" + this.totalNum)
        })
        //監(jiān)聽pdf渲染過程感挥,currentPageDom當(dāng)前加載的pdf的dom,currentNum當(dāng)前加載的pdf頁數(shù),
        pdfh5.on("render", function (currentNum, time, currentPageDom) {
            console.log("當(dāng)前渲染頁:" + currentNum + ",耗時:" + time + "毫秒")
        })
        //監(jiān)聽完成事件越败,加載失敗触幼、渲染成功都會觸發(fā)
        pdfh5.on("complete", function (status, msg, time) {
            console.log("狀態(tài):" + status + ",信息:" + msg + "究飞,耗時:" + time + "毫秒域蜗,總頁數(shù):" + this.totalNum)
        })
        //監(jiān)聽pdf渲染成功
        pdfh5.on("success", function (time) {
            console.log("加載完成巨双,耗時" + time + "毫秒")
        })
        //配置項(xiàng)參數(shù) 是否顯示小部件 加載進(jìn)度loadingBar 頁面顯示pageNum 回到頂部backTop  默認(rèn)顯示
        //      var pdfh5 = new Pdfh5('#demo', {
        //           loadingBar: false,
        //           pageNum:false,
        //           backTop:false
        //      });

        //配置項(xiàng)參數(shù)data,文件流形式傳入  pdfurl和data二選一
        //      var pdfh5 = new Pdfh5('#demo', {
        //          data: data
        //      });

        //配置項(xiàng)參數(shù)scrollEnable:false不允許pdf滾動,true允許pdf滾動  默認(rèn)允許
        //      var pdfh5 = new Pdfh5('#demo', {
        //          scrollEnable:false,//是否允許pdf滾動
        //          pdfurl: url
        //      });
        //pdfh5.scrollEnable(true)允許pdf滾動,pdfh5.scrollEnable(false)不允許pdf滾動

        //配置項(xiàng)參數(shù)zoomEnable:false不允許pdf手勢縮放,true允許pdf手勢縮放  默認(rèn)允許
        //      var pdfh5 = new Pdfh5('#demo', {
        //          zoomEnable:false,//是否允許pdf滾動
        //          pdfurl: url
        //      });
        //pdfh5.zoomEnable(true)允許pdf手勢縮放霉祸,pdfh5.zoomEnable(false)不允許pdf手勢縮放

        //pdfh5還原筑累、銷毀(附帶回調(diào)函數(shù)):   pdfh5.reset pdfh5.destroy 
        //pdfh5顯示、隱藏(附帶回調(diào)函數(shù)):   pdfh5.show pdfh5.hide 

        //on方法,監(jiān)聽各種事件: 開始初始化 init 準(zhǔn)備渲染pdf ready 加載完成 complete 加載失敗 error 加載成功 success 渲染pdf中 render
        // 縮放zoom   滾動scroll 顯示show  隱藏hide 還原reset 銷毀destroy  允許縮放zoomEnable 允許滾動scrollEnable
        //      pdfh5.on("init",function(){
        //          
        //      })
        //      pdfh5.on("ready",function(){
        //          
        //      })
        //      pdfh5.on("complete",function(status,msg,time){
        //          this.zoomEnable(false)
        //      })

        //pdfh5支持在線預(yù)覽 
        //http://www.gjtool.cn/pdfh5/pdf.html?file=http://www.gjtool.cn/pdfh5/default.pdf
    </script>
</body>

</html>

github地址https://github.com/gjTool/pdfh5

示例地址http://www.gjtool.cn/pdfh5/

如果需要在線預(yù)覽丝蹭,那就把github上的項(xiàng)目下載慢宗,部署到自己的服務(wù)器上。

也可以用下面的地址在線預(yù)覽奔穿,修改?file=后面的地址即可:

http://www.gjtool.cn/pdfh5/pdf.html?file=http://www.gjtool.cn/pdfh5/test.pdf

在地址欄最后添加?file="PDF文件的地址"

示例用法:

http://www.gjtool.cn/pdfh5/pdf.html?file=http://xxx.xxx.xxx/xxx.pdf

有問題BUG镜沽,請去GitHub上提Issue。https://github.com/gjTool/pdfh5/issues

項(xiàng)目源碼打包下載???????

如果覺得插件還可以贱田,就請點(diǎn)個星星吧缅茉,以后有空我會更新api文檔,完善插件功能

最近才算閑下來了男摧,新建了一個QQ前端學(xué)習(xí)交流群蔬墩,歡迎加入前端交流h5,651601340耗拓,可以進(jìn)來提pdfh5.js的bug拇颅、問題、建議等乔询。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末樟插,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子竿刁,更是在濱河造成了極大的恐慌黄锤,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件食拜,死亡現(xiàn)場離奇詭異鸵熟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)监婶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門旅赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惑惶,你說我怎么就攤上這事煮盼。” “怎么了带污?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵僵控,是天一觀的道長。 經(jīng)常有香客問我鱼冀,道長报破,這世上最難降的妖魔是什么悠就? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮充易,結(jié)果婚禮上梗脾,老公的妹妹穿的比我還像新娘。我一直安慰自己盹靴,他們只是感情好炸茧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稿静,像睡著了一般梭冠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上改备,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天控漠,我揣著相機(jī)與錄音,去河邊找鬼悬钳。 笑死盐捷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的他去。 我是一名探鬼主播毙驯,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倒堕,長吁一口氣:“原來是場噩夢啊……” “哼灾测!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起垦巴,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤媳搪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后骤宣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秦爆,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年憔披,在試婚紗的時候發(fā)現(xiàn)自己被綠了等限。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡芬膝,死狀恐怖望门,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锰霜,我是刑警寧澤筹误,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站癣缅,受9級特大地震影響厨剪,放射性物質(zhì)發(fā)生泄漏哄酝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一祷膳、第九天 我趴在偏房一處隱蔽的房頂上張望陶衅。 院中可真熱鬧,春花似錦直晨、人聲如沸万哪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奕巍。三九已至,卻和暖如春儒士,著一層夾襖步出監(jiān)牢的瞬間的止,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工着撩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诅福,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓拖叙,卻偏偏與公主長得像氓润,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子薯鳍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容