所謂工欲善其事必先利其器,要想使用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文件,如下所示:


此時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就行~~~
項目地址:地址
參考資料:資料