pdf.js2.2的使用

所謂工欲善其事必先利其器,要想使用pdf.js2.2,我們先需要獲取這個js文件。下載

下載好了之后,我們就可以來使用了。

一:單頁加載

首先,我們來看一下,html的代碼:

就是一個翻頁,和渲染pdf的canvas。

接下來,就開始使用pdf.js編碼了

第一步:引入幾個js文件

第二步:相關(guān)初始化

canvas的初始化可放后,這里實現(xiàn)的是翻頁加載的功能,所以維護一個canvas對象就行了,然后對pdf.js做一些初始化的工作,首先加載pdf.worker.js文件,這個和pdf.js就是負責pdf解析相關(guān)工作的。然后設(shè)置字體庫。在上面給的鏈接里面下載了之后,直接有(其實就是官方demo里的啦~),不設(shè)置也無所謂,不過如果pdf里沒有相關(guān)字體,可能報錯,你也可以在這個cmaps文件夾選擇一些字體文件,不選擇所有的。

第三步:初始化相關(guān)做完了,此時就可以加載pdf文件了。首先我們需要獲取pdf文件,如下所示:

url方式
base64編碼格式

此時pdf已經(jīng)加載好了,但是!注意,這個時候,頁面還是空白,因為沒有渲染。所以,接下來,要做的就是渲染文件

第四步:渲染頁面

因為此處我們需要把寬度,固定為800,所以重新計算了一次縮放比例,然后給canvas這個頁面元素設(shè)置寬高,當然此處,還可以設(shè)置canvas的其他效果,詳見canvas。然后靜待頁面渲染完成即可。因為此處,設(shè)置了翻頁??赡苓B續(xù)點擊下一頁上一頁啊的按鈕。所以,做了判斷,如果在當前頁還在加載的情況下,就又點擊了一次的話,那么,應該不是馬上就渲染,要等當前頁渲染完成在渲染。當然,可以在渲染一頁的時候,攔截這個事件,或者做別的處理也行。

上面說的,其實頁面已經(jīng)渲染完成了。加載的是第一頁。

下面補充一些方法。

最后看下效果:

二:加載全部(多頁)

前面實現(xiàn)了單頁加載的功能,但是我想一次性加載完所有的該怎么辦呢,其實和前面的單頁加載一樣,就改幾個小地方就行啦

1、pdf加載完成之后,直接把所有頁面渲染出來

其次,每個循環(huán)時,重新創(chuàng)建個canvas對象,設(shè)置相關(guān)屬性即可:

這樣,就把所有頁面加載出來啦。當然,其他很多效果都可以實現(xiàn),參考canvas和html5就行~~~

項目地址:地址

參考資料:資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基于html5的移動web頁面搭建技術(shù)總結(jié) 1.技術(shù)要點 1.1面向不同尺寸的手機屏幕,頁面布局適配問題。 網(wǎng)頁的...
    敲代碼的張閱讀 1,591評論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,653評論 1 32
  • 基于html5的移動web頁面搭建技術(shù)總結(jié)1.技術(shù)要點1.1面向不同尺寸的手機屏幕,頁面布局適配問題。 網(wǎng)頁的he...
    敲代碼的張閱讀 398評論 0 0
  • 文從小就沒有父親,也就沒有感受過一星半點的父愛。母親含辛茹苦把他和姐姐拉扯長大。文性格內(nèi)向,也很少接觸姐姐和母親以...
    沉浮夢醒閱讀 392評論 0 2
  • 關(guān)于金岳霖,我們聽到的更多的是有關(guān)他的情感方面的傳聞。比如他和秦麗蓮,他和林徽因,還有“女子當如林徽因,情人當若金...
    王根云閱讀 373評論 0 0

友情鏈接更多精彩內(nèi)容