5 lines
22 KiB
JavaScript
5 lines
22 KiB
JavaScript
|
|
/* v 3.17
|
||
|
|
author http://codecanyon.net/user/creativeinteractivemedia/portfolio?ref=creativeinteractivemedia
|
||
|
|
*/
|
||
|
|
|
||
|
|
var FLIPBOOK=FLIPBOOK||{};FLIPBOOK.PdfService=function(i,e,g){var h=this;this.pdfDocument=i,this.pdfInfo=i._pdfInfo,this.numPages=this.pdfInfo.numPages,this.webgl="webgl"==g.viewMode&&1<this.numPages,this.options=g,this.main=g.main,this.model=e,this.pages=[],this.thumbs=[],this.canvasBuffer=[],this.viewports=[],this.textContents=[],this.pdfPages=[],this.pdfAnnotations=[],this.eventBus=new EventBus,this.linkService=new PDFLinkService({eventBus:this.eventBus}),this.linkService.setViewer(this.main),this.linkService.setDocument(i),this.linkService.externalLinkTarget=2,window._dbg=0,this.getCanvas=function(){for(var e,t=0;t<this.canvasBuffer.length;t++){if((e=this.canvasBuffer[t]).available){e.available=!1,e.double=!1;break}e=null}return e||((e=document.createElement("canvas")).available=!1,e.index=this.canvasBuffer.length,this.canvasBuffer.push(e)),e.rendering=!0,e},this.isRendering=function(t,n){var i=!1;return this.canvasBuffer.forEach(function(e){e.size==n&&e.pdfPageIndex==t&&e.rendering&&(i=!0)}),i},this.isRendered=function(t,n){var i=!1;return this.canvasBuffer.forEach(function(e){e.size==n&&e.pdfPageIndex==t&&e.rendered&&(i=!0)}),i},this.setRightIndex=function(t){var n=this,i=[];this.options.isMobile;this.canvasBuffer.forEach(function(e){(!e.rendering&&7<t-e.pageIndex||t-e.pageIndex<-6)&&-1<e.pageIndex&&(-1<e.pdfPageIndex&&(delete n.pages[e.pdfPageIndex].canvas[e.size],n.pages[e.pdfPageIndex].cleanup()),i.push({index:e.pageIndex,size:e.size}),e.double&&i.push({index:e.pageIndex-1,size:e.size}),e.getContext("2d").clearRect(0,0,e.width,e.height),e.width=e.height=0,e.pageIndex=-100,e.available=!0,e.rendered=!1)}),0<i.length&&this.model.trigger("pageUnloaded",{unloadedPages:i})},this.loadThumbs=function(t,n){var i=this;this.thumbLoading=this.thumbLoading||0,this.thumbLoading>=this.pdfInfo.numPages?n.call(i):this.loadThumb(this.thumbLoading,function(e){i.options.thumbLoaded(e),i.thumbLoading++,i.loadThumbs(t,n)})},this.loadThumb=function(r,o){var d=this;this.getViewport(r,function(){var e=d.pages[r],t=100/e.getViewport({scale:1}).height,n=e.getViewport({scale:t}),i=document.createElement("canvas");i.index=r;var a=i.getContext("2d");i.height=n.height,i.width=n.width;var s={canvasContext:a,viewport:n};e.cleanupAfterRender=!0,e.render(s).then(function(){e.cleanup(),o&&o.call(d,i)})})},this.init=function(t){h.getViewport(0,function(e){h.r1=e.width/e.height,1==h.pdfInfo.numPages?(h.double=!1,h.model.trigger("pdfinit")):h.getViewport(1,function(e){h.r2=e.width/e.height,h.double=1.5<h.r2/h.r1,h.backCover=t||!0,h.model.trigger("pdfinit")})})},this.loadOutline=function(t){var n=this;this.pdfDocument.getOutline().then(function(e){n.outline=e,n.outlineLoaded=!0,t.call(n,e)})},this.startLoadingText=function(){this.loadingText=!0},this.stopLoadingText=function(){this.loadingText=!1},this.getViewport=function(e,t){e>=h.pdfInfo.numPages||(h.pages[e]?(h.viewports[e]=h.pages[e].getViewport({scale:1}),t.call(h,h.viewports[e])):i.getPage(e+1).then(function(e){h.pages[e.pageIndex]=e,h.getViewport(e.pageIndex,t)}))},this.getAllViewports=function(e){},this.getText=function(n,i){var a=this;this.getViewport(n,function(e){var t=a.pages[n];a.getTextContent(t,function(){i.call(a,t)})})},this.getTextAllPages=function(e){var t=this;this.loadingTextFromPage=this.loadingTextFromPage||0,this.getText(this.loadingTextFromPage,function(){t.loadingTextFromPage==t.numPages-1?e&&e.call(t):(t.loadingTextFromPage++,t.getTextAllPages(e))})},this.findInPage=function(e,t,n){var i=this;this.findInPageCallbacks=this.findInPageCallbacks||[],this.findInPageCallbacks[t]=n,this.searchingString=e,this.pages[t]&&this.pages[t].textContent?i.findInPageTextContentAvailable(this.pages[t],t):this.getText(t,function(e){i.findInPageTextContentAvailable(e,t)})},this.findInPageTextContentAvailable=function(e,t){var n=e.textContent.items;if(void 0===e.textContentString){e.textContentString="";for(var i=0;i<n.length;i++)e.textContentString+=n[i].str}var a=e.textContentString.toUpperCase().search(this.searchingString.toUpperCase()),s=this.findInPageCallbacks[t];s&&s.call(this,a,e.html
|