整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          免費開源的 JavaScript 讀取、顯示 PDF

          免費開源的 JavaScript 讀取、顯示 PDF 文檔的工具庫,由 Mozilla 出品

          近新項目需要處理 PDF,研究了 PDf.js 之后覺得很不錯,于是寫篇文章推薦給大家。

          關(guān)于 PDF.js

          PDF.js 的功能和它的名字一樣簡單,是一個使用 HTML5 技術(shù)來讓前端網(wǎng)頁支持讀取、解析和顯示 PDF 文檔的 JS 工具庫。這個項目由大名鼎鼎的 Mozilla 組織開發(fā)并且更新維護(hù)著,沒錯,就是那個開發(fā)了火狐瀏覽器的 Mozilla。所以 pdf.js 也內(nèi)置在 Firefox 的 19+ 版本中,也是火狐瀏覽器的默認(rèn) PDF 處理工具。

          一般來說,要查看 PDF 文檔,我們需要一個 PDF 閱讀器軟件,而通過 PDF.js 可以在瀏覽器中直接顯示和處理 PDF 文檔,無論是在線瀏覽、存檔或者其他基于 PDF 的功能都可以實現(xiàn)。

          PDF.js 項目主頁

          PDF.js 的技術(shù)特性

          • 功能強(qiáng)大,內(nèi)置了很多實用的 api,幾乎可以對 PDF 文件“為所欲為”;
          • 兼容性超好,不僅支持現(xiàn)代瀏覽器,對于舊版本的瀏覽器也有很好的支持;
          • 易于上手,官方也提供了很多代碼例子。

          我用 PDF.js 來做什么?

          如果只是為什么顯示 PDF 文檔,其實大部分情況下瀏覽器都支持直接打開 PDF,之前碰到要顯示 PDF 的需求,都是直接在瀏覽器新標(biāo)簽打開。

          在瀏覽器中渲染 PDF

          不過就在上周,我接到了一個需求,要在網(wǎng)頁上支持導(dǎo)入 PDF 文件,轉(zhuǎn)化成圖片保存到后端,并且還要提取 PDF 文檔中的文字。于是我就開始研究 PDF.js ,了解之后發(fā)現(xiàn)這個工具庫非常強(qiáng)大,完全可以滿足我的需求,那些在線轉(zhuǎn)換 PDF 的工具實際上都是基于 PDF.js 開發(fā)的。

          我要處理的文檔有一部分是發(fā)票,其實里面的文字并不是圖片,而是可以選擇的,這種類型的文檔通過 PDF.js 甚至可以直接獲取文字的內(nèi)容,OCR 識別的過程都免了,實在太棒了。

          開發(fā)上手體驗和使用建議

          要開始使用 PDF.js ,可以直接從項目下載源碼,然后在頁面中引入 pdf.js ,就可以按照代碼例子那些來使用了。

          官方文檔

          我的實現(xiàn)方式

          我是在 Vue 項目中使用,所以我選擇用 npm 安裝的方式:

          npm i pdfjs-dist -S

          然后在 Vue 頁面中引入 PDF.js,注意這里的引入方式,需要在包名后加上 /webpack ,否則會報錯,原因我也沒有去深入排查。

          <template>
          <div class="hello">
              <input
                type="file"
                name="file"
                id="file"
                accept="application/pdf"
                single
                placeholder="請選擇pdf文件"
                @change="handleFile"
              />
              <canvas id="viewer" ref="viewer" :width="width" :height="height"></canvas>
            </div>
          </template>
          <script>
          import { getDocument } from "pdfjs-dist/webpack"; // 注意這里的引入方式
          
          // 省略無關(guān)代碼...
          // methods:
              handleFile(e) {
                const reader=new FileReader();
                reader.onload=(evt)=> {
                  this.init(evt.target.result);
                };
          
                reader.readAsDataURL(e.target.files[0]);
              },
              async init(path) {
                // 讀取pdf
                let pdf=await getDocument(path).promise; //返回一個pdf對象
                const page=await pdf.getPage(0); // 獲取第一頁
                const viewport=page.getViewport({ scale: 1 });
                const textContent=await page.getTextContent();
                console.log(textContent.items); // 頁面的文章內(nèi)容在這
          
                const context=this.canvas.getContext("2d");
                // 設(shè)置canvas的尺寸
                this.width=viewport.width;
                this.height=viewport.height;
                await page.render({ canvasContext: context, viewport: viewport }).promise; // 渲染第一頁內(nèi)容
              },
          
          </script>

          上面這段代碼就是我項目 demo 中的一部分,可以實現(xiàn)讀取 PDF 文檔中的頁面和文字,代碼的末尾把第一頁渲染到了 canvas 中,想要轉(zhuǎn)成圖片,只要把 canvas 中的內(nèi)容轉(zhuǎn)成 PNG 圖片即可,區(qū)區(qū)十來行代碼,非常簡單。

          更多建議

          除了提取文章和轉(zhuǎn)成圖片,PDF.js 還很多強(qiáng)大的功能,比如可以實現(xiàn)頁面導(dǎo)航,預(yù)覽時加入縮放、滾動、旋轉(zhuǎn)和手寫等注釋以及實現(xiàn)打印、另存為等操作。

          還有些付費軟件的功能是壓縮 PDF 文檔,PDF.js 也可以壓縮處理超大型的 PDF 文檔,技術(shù)原理是把文檔中沒有使用的結(jié)構(gòu)、元素和對象刪除,大大簡化文檔,從而起到壓縮的效果。

          總之,想要在項目處理 PDF,PDF.js 是首選,并且目前沒有看到類似好用并且強(qiáng)大的 JS 庫,反而很多 PDF 工具都是基于 PDF.js 二次封裝的。

          免費開源說明

          Mozilla 組織本身是一個非營利性組織,成立以來一直致力于推動瀏覽器的良好發(fā)展,PDF.js 也不例外,是一個免費開源的項目,源碼基于 Apache 2.0 許可托管在 Github 上,任何人都可以免費下載來使用,用在商業(yè)項目也完全沒問題。

          ↓↓點擊查看本次分享的網(wǎng)站。

          PDF.js - 免費開源的 JavaScript 讀取、顯示 PDF 文檔的工具庫,由 Mozilla 開發(fā)并且持續(xù)維護(hù)|那些免費的磚

          微信小程序小說閱讀器+后臺管理系統(tǒng)|前后分離VUE》該項目含有源碼、論文等資料、配套開發(fā)軟件、軟件安裝教程、項目發(fā)布教程等

          本系統(tǒng)包含微信小程序前臺和Java做的后臺管理系統(tǒng),該后臺采用前后臺前后分離的形式使用Java+VUE

          微信小程序——前臺涉及技術(shù):WXML 和 WXSS、JavaScript、uniapp

          Java——后臺涉及技術(shù):

          前端使用技術(shù):JSP,HTML5,CSS3、JavaScript、VUE等

          后端使用技術(shù):Spring、SpringMvc、Mybatis(SSM)等

          數(shù)據(jù)庫:Mysql數(shù)據(jù)庫

          小程序框架:uniapp

          小程序開發(fā)軟件:HBuilder X

          小程序運(yùn)行軟件:微信開發(fā)者

          管理員:個人中心、用戶管理、圖書分類管理、圖書信息管理、留言板管理、系統(tǒng)管理等

          普通用戶:登錄注冊、首頁、圖書信息和我的(留言板、收藏)等

          系統(tǒng)功能完整,適合作為畢業(yè)設(shè)計、課程設(shè)計、數(shù)據(jù)庫大作業(yè)。

          下面是資料信息截圖:

          下面是系統(tǒng)運(yùn)行起來后的一些截圖:

          1月19日下午,搜狐IT無窮沙龍聚集了一批對HTML5技術(shù)感興趣的人,這些人大多是各公司的技術(shù)達(dá)人或者HTML5技術(shù)愛好者,他們都對HTML5的應(yīng)用及未來發(fā)展都非常有想法,希望能夠在這個沙龍上聽到業(yè)界重量級人物的精彩分享,本片文章就帶你看看他們是如何看待HTML5生態(tài)發(fā)展的。

          當(dāng)前HTML5的技術(shù)應(yīng)用非常廣泛,從網(wǎng)站到平臺再到應(yīng)用,不但能無縫連接了PC網(wǎng)站與移動互聯(lián)網(wǎng),更讓很多傳統(tǒng)的PC網(wǎng)站起死回生。微信朋友圈的營銷以及各種活動宣傳都開始以HTML5的形式,使得的互動性與娛樂性大為提高。

          HTML5是在HTML大標(biāo)準(zhǔn)下的再生,HTML5整個版本經(jīng)歷很的時間,從04年開始進(jìn)行草稿定式到06年W3C加入到整個標(biāo)準(zhǔn)的制作過程中,到08年提出第一稿,到14年正式定稿,對于整個生態(tài)的影響是什么?沙龍上,包括搜狐快站負(fù)責(zé)人樊功臣、百度直達(dá)號技術(shù)團(tuán)隊負(fù)責(zé)人甘勛、微信海CEO程小永、UC瀏覽器內(nèi)核研發(fā)團(tuán)隊負(fù)責(zé)人梁延俊、HTML5民間開發(fā)者張東在內(nèi)的嘉賓進(jìn)行了分享,同時討論整個未來移動互聯(lián)網(wǎng)的未來圍繞著HTML5將會進(jìn)行什么樣的變革,偉哥認(rèn)為這些話題對于廣大互聯(lián)網(wǎng)人來說非常有價值。

          搜狐快站負(fù)責(zé)人樊功臣:HTML5全力打造搜狐快站 六大神技讓移動建站更加簡單

          這次老樊的分享是搜狐快站的六大神技,分別是免費篇之上善若水、獨立篇之股本培元、功能篇之寶刀屠龍、便捷篇之彈指神功、HTML5篇之無孔不入、營銷篇之吸星大法。這六大神功步步為營,環(huán)環(huán)相扣,重點在于上無孔不入這技能,搭載了HTML5的快站可以用無孔不入來形容,從蘋果系統(tǒng)到安卓系統(tǒng),可以在微信、微博及各搜索引擎上使用,甚至可以在谷歌眼鏡及蘋果眼鏡上使用。

          搜狐快站在健康類、教育類及汽車類的合作商家有七八萬家站,快站使用HTML5技術(shù)搭建的APP網(wǎng)站,簡潔同時功能也在不斷完善,后臺的驅(qū)動力量也非常大,同時跟各平臺的融合性也在不斷提高,快站技術(shù)體現(xiàn)在新聞客戶端中的HTML5的比重也在增大。目前快已經(jīng)跟微信公眾號打通,跟直達(dá)號做了深度合作,跟360包括周圍各種各樣的流量渠道進(jìn)行打通,區(qū)別于依附在百度或者騰訊上面的一個營銷站點,快站搭建的站是一個完整的獨立站點。

          百度直達(dá)號技術(shù)團(tuán)隊負(fù)責(zé)人甘勛:HTML5實現(xiàn)跨平臺服務(wù)商家

          百度在多年以前就開始研究與布局移動端包括HTML5以及CSS,去年在百度世界的發(fā)不的輕應(yīng)用也使用HTML5技術(shù),用戶在百度首頁點擊某個鏈接,就會進(jìn)入到HTML5的應(yīng)用或者WEB站,用戶在獲取信息的同時也能直接獲取到服務(wù)。

          能夠以跨平臺的方式直接連接服務(wù)和商家,HTML5是最優(yōu)化的解決方式。通過搜索入口直接讓用戶連接到應(yīng)用本身,這就解決了現(xiàn)在的大部分移動應(yīng)用及一些站點分發(fā)需要中轉(zhuǎn)才能使用的問題,把這一件事情直接通過搜索關(guān)聯(lián)起來,分發(fā)等各種應(yīng)用都不再是問題。

          所有的應(yīng)用得需要讓更多的人使用你的服務(wù)或者使用你的應(yīng)用,從搜索百度做搜索是流量的入口。商家的價值有四類,即廣拉新、高轉(zhuǎn)化、強(qiáng)留存、易開通。直達(dá)號是企業(yè)在百度官方移動平臺的官方服務(wù)號,直接關(guān)聯(lián)商家的應(yīng)用,直接使用戶關(guān)聯(lián)到企業(yè)。百度給是流量的入口,現(xiàn)在在移動端有15款用戶過億,包括地圖、文庫、魔圖等等移動端應(yīng)用,把直達(dá)號和15款過億的APP結(jié)合起來,這些移動端就成為連接HTML5應(yīng)用的入口。

          微信海CEO程小永:要多做一些接地氣的HTML5應(yīng)用

          從UC、微信、百度直達(dá)號,大家開始做這件事情的時候個HTML5開始越來越火。小永希望做一些能從商用層面真正給傳統(tǒng)企業(yè)帶來效果的,所以我們用HTML5做更多的營銷活動,通過微信口碑傳出去。所以,HTML5興起以后,更多的企業(yè)都在琢磨去中性化的玩法。

          HTML5對于移動端來說是一個技術(shù)的革新,把APP之間互相不通的情況有意識打破,但是這個過程還是很慢。移動互聯(lián)網(wǎng)是連接線上和線下的而不是虛擬的連接,HTML5在做虛擬的連接,像PC時代的WWW.COM,移動端通過二維碼把線線下連接起來,這也是O2O為什么火的原因,因為線上線下實現(xiàn)了閉環(huán)。

          大家以后做HTML5應(yīng)用,一定要更多做一些接地氣的,真正能讓商家讓傳統(tǒng)企業(yè)能讓使用者很好把它用起來的東西,不要做得特別炫。中國四千萬中小企業(yè)不需要很炫的東西,要帶來廣泛的傳播廣泛的定單,這是他們所有的需求。

          UC瀏覽器內(nèi)核研發(fā)團(tuán)隊負(fù)責(zé)人梁延俊:HTML5混合原生態(tài)的模式成為主流

          在很多APP開發(fā)都是HTML5混合原生開發(fā)來去做一些應(yīng)用,各取所長,通過實際需要取得一個平衡點。這樣的一個模式其實是HTML5與游戲開發(fā)者層面的影響,更有利地去做一些發(fā)展。

          現(xiàn)在HTML5混合原生態(tài)的模式后已經(jīng)是一個主流,以后也會有更多的探索用這樣的方式開發(fā)里面的應(yīng)用,包括小說、視頻、閱讀器等。像小說翻頁的時候?qū)τ谛阅艿囊蟊容^高,小說的搜索、書架可能更追求的是需要內(nèi)容快速更新,在以后這部分可能會用HTML5的頁面來去做。

          HTML5民間開發(fā)者張東:HTML5技術(shù)滿足企業(yè)們更高的需求

          2013—2014年隨著手機(jī)移動端的爆棚式增長,企業(yè)們的服務(wù)需求也在改變,現(xiàn)在為止隨著HTML5技術(shù)的成熟,有很多優(yōu)秀的建站產(chǎn)品的問世。在這個過程中,我們首先要了解用戶在空閑的時候會拿手機(jī)干什么,每個年齡段有什么樣的需求,這個也是我們需要分析的話題,老用戶和新用戶的區(qū)別。對于一個商戶的開發(fā)來說首先是一個用戶體驗,這是最重要的一點,用戶體驗抓住用戶的需求,讓用戶在極短的時間內(nèi)完成他所需要做的一些事情,這個是最關(guān)鍵的。

          有特色的服務(wù)包括開發(fā)的指導(dǎo),有一些比較流行的,在沒有強(qiáng)大的技術(shù)的情況下,你照樣可以去做建站服務(wù)以及互聯(lián)網(wǎng)這方面的服務(wù),這些通過搜狐快站等產(chǎn)品就可以完成,基本上,哪家產(chǎn)品能夠提供更多的便利,提供的指導(dǎo)更多,能節(jié)省成本,有穩(wěn)定的服務(wù)與網(wǎng)絡(luò)支持,就會選擇哪家產(chǎn)品。搜狐快站這樣的建站產(chǎn)品,通過一個簡單的推動就可以實現(xiàn)某個功能、一些交互式及某些特殊的效果,并且有完善的CMS內(nèi)容發(fā)布管理系統(tǒng)以及電商系統(tǒng)等等,在這個情況下可以看到快站針對互聯(lián)網(wǎng)全網(wǎng)營銷在這方面考慮的比較多。

          HTML5越發(fā)火熱,相信在接下來的發(fā)展中會得到更廣泛的應(yīng)用,從SEO抓取到平臺再到應(yīng)用的整條產(chǎn)業(yè)鏈等會誕生出千萬甚至億級的企業(yè),使得HTML5在創(chuàng)業(yè)圈與投資圈非常熱,以此關(guān)注HTML5的人越來越多。

          這次無窮俱樂部沙龍的各位嘉賓從建站產(chǎn)品、開發(fā)者、使用者、應(yīng)用程序等各方面分享自己的對HTML5的認(rèn)識,多角度為到場聽眾見解了HTML5在未來的發(fā)展,分享內(nèi)容無論是專業(yè)度還是實用度,都是很少見的。偉哥認(rèn)為HTML5未來會有更廣泛的發(fā)展,將改變未來移動互聯(lián)網(wǎng)時代的視聽新體驗,同時也是一個非常重要的發(fā)展方向,無論是WebAPP還是輕應(yīng)用或者是輕游戲方面。在超級APP的崛起之下,HTML5的發(fā)展未來前景一篇廣闊,現(xiàn)在是廣大建站者必需真正需要考慮用HTML5的時候了。


          主站蜘蛛池模板: 多人伦精品一区二区三区视频| 久久一区二区三区99| 亚洲人成人一区二区三区| 国产麻豆精品一区二区三区v视界 国产美女精品一区二区三区 | 无码av免费毛片一区二区| 国产精品久久久久一区二区三区| 亚洲一区二区视频在线观看| 精品人妻一区二区三区毛片| 国产激情无码一区二区| 成人精品一区二区不卡视频| 福利一区二区视频| 69福利视频一区二区| 精品一区二区三区无码免费直播| 国精品无码A区一区二区| 亚洲欧美日韩国产精品一区| 久夜色精品国产一区二区三区| 亚洲熟女综合一区二区三区| 国产福利一区二区在线视频 | 精品无人区一区二区三区| 无码精品人妻一区| 2020天堂中文字幕一区在线观| 久久精品国产亚洲一区二区三区| 国产精品无码一区二区三区毛片| 日本一区二区在线| 动漫精品专区一区二区三区不卡| 日韩一区二区视频在线观看| 国产高清不卡一区二区| 日韩人妻无码一区二区三区综合部 | 一区二区三区在线观看| 风间由美性色一区二区三区| 女人和拘做受全程看视频日本综合a一区二区视频 | 无码国产精品一区二区免费虚拟VR| 国产精品无码一区二区在线观一| 亚洲国产欧美日韩精品一区二区三区 | 国产精品一区二区av| 亚洲国产成人久久综合一区77 | 色狠狠AV一区二区三区| 亚洲午夜福利AV一区二区无码| 国产一区二区三区免费观在线 | 国产激情精品一区二区三区| 在线日韩麻豆一区|