Файловый менеджер - Редактировать - /var/www/portal.bdu.ac.bd/public_html/wp-content/plugins/pdf-embedder/assets/js/pdfemb-pv-core.js
Назад
;window.PDFEMB_NS = {}; jQuery(document).ready(function($) { var PIXEL_RATIO = (function () { var ctx = document.createElement("canvas").getContext("2d"), dpr = window.devicePixelRatio || 1, bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; return dpr / bsr; })(); PDFEMB_NS.PIXEL_RATIO = PIXEL_RATIO; var CANVAS_MAX_PIXELS = 16777000; // 16777216 is max on iPhone Safari createHiDPICanvas = function (w, h, ratio) { if (!ratio) { ratio = PIXEL_RATIO; } var can = document.createElement("canvas"); can.width = w * ratio; can.height = h * ratio; can.style.width = w + "px"; can.style.height = h + "px"; can.getContext("2d").setTransform(ratio, 0, 0, ratio, 0, 0); return can; }; var vscrollbarwidth = 0, hscrollbarheight = 0; (function() { // Create the measurement node var scrollDiv = document.createElement("div"); scrollDiv.style.width = '100px'; scrollDiv.style.height = '100px'; scrollDiv.style.overflow = 'scroll'; scrollDiv.style.position = 'absolute'; scrollDiv.style.top = '-9999px'; document.body.appendChild(scrollDiv); // Get the scrollbar width vscrollbarwidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; hscrollbarheight = scrollDiv.offsetHeight - scrollDiv.clientHeight; // Delete the DIV document.body.removeChild(scrollDiv); })(); PDFEMB_NS.vscrollbarwidth = vscrollbarwidth; PDFEMB_NS.hscrollbarheight = hscrollbarheight; var pdfembPagesViewer = function (pdfDoc, divContainer, showIsSecure) { this.pdfDoc = pdfDoc; this.divContainer = divContainer; this.showIsSecure = showIsSecure; this.initialResize = false; this.firstPageWidth = 0; this.firstPageHeight = 0; this.invalidationRound = 1; this.currentPageNum = 0; this.zoom = 100; this.fromZoom = 0; this.toZoom = 0; }; pdfembPagesViewer.prototype.setup = function () { var self = this; var divContainer = this.divContainer; var pdfDoc_ = this.pdfDoc; var showIsSecure = this.showIsSecure; this.numPages = pdfDoc_.numPages; var scrollbar = divContainer.data('scrollbar'); this.vscrollbar = scrollbar == 'both' || scrollbar == 'vertical'; this.hscrollbar = scrollbar == 'both' || scrollbar == 'horizontal'; var style = 'overflow-y: ' + (this.vscrollbar ? 'scroll' : 'hidden') + '; '; style += 'overflow-x: ' + (this.hscrollbar ? 'scroll' : 'hidden') + '; '; divContainer.empty().append( $('<div></div>', {'class': 'pdfemb-pagescontainer', 'style': style})); divContainer.data('pdfDoc', pdfDoc_); var toolbar_location = divContainer.data('toolbar'); if (toolbar_location == 'top' || toolbar_location == 'both') { this.addToolbar(true, divContainer.data('toolbar-fixed') == 'on', showIsSecure); } if (toolbar_location == 'bottom' || toolbar_location == 'both') { this.addToolbar(false, divContainer.data('toolbar-fixed') == 'on', showIsSecure); } // Annotations layer // Set up annotations layer factory if (typeof(PDFEMB_NS.pdfembPremiumAnnotationsLayerFactory) != 'undefined') { self.annotationsLayerFactory = new PDFEMB_NS.pdfembPremiumAnnotationsLayerFactory(); } else { self.annotationsLayerFactory = { createAnnotationsLayerBuilder: function (pageDiv, pdfPage) { return null; } } } self.annotationLayerFactories = Array(); // Text Layer if (typeof(PDFEMB_NS.pdfembPremiumTextLayerFactory) != 'undefined') { self.textLayerFactory = new PDFEMB_NS.pdfembPremiumTextLayerFactory(); } else { self.textLayerFactory = { createTextLayerBuilder: function (pageDiv, pdfPage) { return null; } } } self.textLayerFactories = Array(); // React to page jump event divContainer.on('pdfembGotopage', function (e, pageNum) { if (pageNum > this.numPages || pageNum <= 0) { return; } self.gotoPage(pageNum); self.jumpToTop(); }); divContainer.on('pdfembGotoHash', function (e, destobj) { if (!destobj.dest) { return; } dest = destobj.dest; var destinationPromise; if (typeof dest === 'string') { destString = dest; destinationPromise = self.pdfDoc.getDestination(dest); } else { destinationPromise = Promise.resolve(dest); } destinationPromise.then(function (destination) { if (!(destination instanceof Array) || destination.length < 1) { return; // invalid destination } self.pdfDoc.getPageIndex(destination[0]).then(function (pageIndex) { var pageNum = pageIndex + 1; if (pageNum > self.numPages || pageNum <= 0 || self.currentPageNum == pageNum) { return; } self.gotoPage(pageNum) self.jumpToTop(); }); }); }); divContainer.on('pdfembGotoAction', function (e, action) { var curPage = self.currentPageNum; var newPage = curPage; switch (action) { case 'GoBack': --newPage; break; case 'GoForward': ++newPage; break; case 'NextPage': ++newPage; break; case 'PrevPage': --newPage; break; case 'LastPage': newPage = self.pageCount; break; case 'FirstPage': newPage = 1; break; default: break; // No action according to spec } if (newPage == curPage || newPage > self.pageCount || newPage <= 0) { return; } self.gotoPage(newPage); }); divContainer.on('pdfembMagnify', function (event) { self.magnifyEvent(event); }); divContainer.on('pdfembChangeZoom', function (event, amt) { self.changeZoom(amt); }); // Initial/first page rendering this.pageCount = pdfDoc_.numPages; if (!divContainer.data('pagenum') || divContainer.data('pagenum') < 1 || divContainer.data('pagenum') > this.pageCount) { divContainer.data('pagenum', 1); } divContainer.data('showIsSecure', this.showIsSecure); divContainer.data('pageNumPending', null); var startZoom = divContainer.data('fullScreen') == 'on' ? parseInt(divContainer.data('startfpzoom')) : parseInt(divContainer.data('startzoom')); if (isNaN(startZoom) || startZoom < 20 || startZoom > 800) { startZoom = 100; } this.zoom = startZoom; if (startZoom != 100) { divContainer.find('span.pdfemb-zoom').text(startZoom + '%'); } divContainer.find('span.pdfemb-page-count').text(this.pageCount); this.gotoPage(divContainer.data('pagenum')); }; pdfembPagesViewer.prototype.checkForResize = function () { var self = this; var divContainer = self.divContainer; var newheight = $(window).height(); var newwidth = $(window).width(); var oldheight = divContainer.data('checked-window-height'); var oldwidth = divContainer.data('checked-window-width'); if (!oldheight || !oldwidth) { divContainer.data('checked-window-height', newheight); divContainer.data('checked-window-width', newwidth); } if (oldheight != newheight || oldwidth != newwidth) { self.resizeViewer(); self.resizeInnerDivs(); self.invalidateAllPages(); self.renderPage(this.currentPageNum); self.prerenderNearbyPages(this.currentPageNum); self.pdfembMakeMobile(); divContainer.data('checked-window-height', newheight); divContainer.data('checked-window-width', newwidth); } if (divContainer.data('fullScreenClosed') != 'true') { setTimeout(function () { self.checkForResize(); }, 100); } }; pdfembPagesViewer.prototype.setSizesBasedOnPage = function (page) { var vp = page.getViewport(1.0); // scale = 1.0 this.pageWidth = vp.width; this.pageHeight = vp.height; if (this.pageWidth <= 0 || this.pageHeight <= 0) { this.divContainer.empty().append(document.createTextNode(pdfemb_trans.objectL10n.widthheightinvalid)); return; } }; pdfembPagesViewer.prototype.createPageInnerDivs = function () { var self = this; var pagesContainer = this.divContainer.find('.pdfemb-pagescontainer'); for (var i = 1; i <= this.pageCount; ++i) { var innerdiv = pagesContainer.find('.pdfemb-inner-div.pdfemb-page' + i); if (innerdiv.length == 0) { innerdiv = $('<div></div>', {'class': 'pdfemb-inner-div pdfemb-page' + i}); innerdiv.data('pageNum', i); pagesContainer.append(innerdiv); } } self.resizeInnerDivs(); }; pdfembPagesViewer.prototype.addGrabToPan = function () { var self = this; var divContainer = self.divContainer; var jpagesContainer = divContainer.find('div.pdfemb-pagescontainer'); var grabtopan = new pdfembGrabToPan({ element: jpagesContainer[0] }); divContainer.data('grabtopan', grabtopan); jpagesContainer.on('scroll', function (e) { var pn = self.getTopVisiblePageNum(); if (pn != self.currentPageNum) { self.currentPageNum = pn; self.updatePageNumDisplay(pn); self.renderPage(pn, false); self.prerenderNearbyPages(pn); self.deallocateFarAwayPages(pn); } e.stopPropagation(); }); $(window).resize(function () { setTimeout(function () { self.checkForResize(); }, 100); }); }; pdfembPagesViewer.prototype.resizeInnerDivs = function (pageNum) { var self = this; var wantCanvasWidth = self.wantCanvasWidth, wantCanvasHeight = self.wantCanvasHeight, wantHeight = self.wantHeight; var pagesContainer = this.divContainer.find('.pdfemb-pagescontainer'); var innerdivs = pagesContainer.find('.pdfemb-inner-div'); if (pageNum) { innerdivs = innerdivs.filter('.pdfemb-page'+pageNum); } var totalheight = 0; innerdivs.each(function(i,elt) { var e = $(elt); var widthfactor = e.data('widthfactor'), heightfactor = e.data('heightfactor'); if (!widthfactor) { widthfactor = 1; } if (!heightfactor) { heightfactor = 1; } e.data('invalidation-round', this.invalidationRound - 1); e.css('width', wantCanvasWidth * widthfactor); var height = wantCanvasHeight * heightfactor + (pageNum == self.numPages || (!pageNum && i == innerdivs.length-1) ? 0 : 2); e.css('height', height); totalheight += height; var canvas = e.find('.pdfemb-the-canvas'); canvas.css('width', wantCanvasWidth * widthfactor); canvas.css('height', wantCanvasHeight * heightfactor); }); var VMargin = 0; if (!pageNum && totalheight < wantHeight) { VMargin = (wantHeight - totalheight) / 2; } innerdivs.first().css('top', VMargin); }; pdfembPagesViewer.prototype.invalidateAllPages = function () { ++this.invalidationRound; }; pdfembPagesViewer.prototype.prerenderNearbyPages = function (pageNum) { var pagedelta_forward = 3, pagedelta_backward = 2; if (this.zoom < 100) { pagedelta_forward *= Math.min(Math.ceil(100 / this.zoom), 10); pagedelta_backward *= Math.min(Math.ceil(100 / this.zoom), 10); } for (var pn = Math.max(1, pageNum - pagedelta_backward); pn <= Math.min(pageNum + pagedelta_forward, this.numPages); ++pn) { if (pn != pageNum) { this.renderPage(pn, false); } } }; pdfembPagesViewer.prototype.deallocateFarAwayPages = function (pageNum) { var pagedelta_forward = 2, pagedelta_backward = 2; if (this.zoom < 100) { var extra_pages = Math.min(Math.ceil(100 / this.zoom), 50); pagedelta_forward += extra_pages; pagedelta_backward += extra_pages; } var removeCanvas = function(pn) { var pageInnerDiv = pagesContainer.find('.pdfemb-page' + pn); var canvas = pageInnerDiv.find('.pdfemb-the-canvas'); if (canvas.length) { canvas.width = 1; canvas.height = 1; // const ctx = canvas.getContext('2d'); // ctx && ctx.clearRect(0, 0, 1, 1); canvas.remove(); pageInnerDiv.data('invalidation-round', 0); } }; var pagesContainer = this.divContainer.find('div.pdfemb-pagescontainer'); var pn; for (pn = 3; pn < pageNum - pagedelta_backward; ++pn) { removeCanvas(pn); } for (pn = pageNum + pagedelta_forward; pn < this.numPages; ++pn) { removeCanvas(pn); } }; pdfembPagesViewer.prototype.resizeViewer = function () { var self = this; var pageWidth = self.pageWidth, pageHeight = self.pageHeight, divContainer = self.divContainer; var pagesContainer = divContainer.find('div.pdfemb-pagescontainer'); var oldScrollLeft = pagesContainer[0].scrollLeft; var oldScrollTop = pagesContainer[0].scrollTop; // Max out at parent container width var parentWidth = divContainer.parent().width(); var wantWidth = pageWidth; if (divContainer.data('width') == 'max') { wantWidth = parentWidth; } else if (divContainer.data('width') == 'auto') { wantWidth = pageWidth; } else { wantWidth = parseInt(divContainer.data('width'), 10); if (isNaN(wantWidth) || wantWidth <= 0) { wantWidth = parentWidth; } } if (wantWidth <= 0) { wantWidth = pageWidth; } // Always max at the parent container width if (wantWidth > parentWidth && parentWidth > 0) { wantWidth = parentWidth; } var wantHeight = pageHeight * wantWidth / pageWidth; var wantMobile = self.pdfembWantMobile(wantWidth, userHeight); self.wantMobile = wantMobile; var fixedToolbars = divContainer.find('div.pdfemb-toolbar-fixed'); var actualFixedToolbars = wantMobile ? 0 : fixedToolbars.length; // Height can be overridden by user var userHeight = parseInt(divContainer.data('height'), 10); if (isNaN(userHeight) || userHeight <= 0 || userHeight > wantHeight) { if (divContainer.data('height') == "auto") { // Mainly for full screen mode userHeight = divContainer.parent().height() - actualFixedToolbars * fixedToolbars.height(); } else { // max userHeight = wantHeight; } } self.userHeight = userHeight; wantWidth = Math.floor(wantWidth); wantHeight = Math.floor(wantHeight); var zoom = 100; var wantCanvasWidth = wantWidth - (self.vscrollbar ? vscrollbarwidth : 0); var wantCanvasHeight = wantHeight - (self.hscrollbar ? hscrollbarheight : 0); var reducefactor = 1; if (!wantMobile) { zoom = self.zoom; wantCanvasWidth = wantCanvasWidth * zoom / 100; wantCanvasHeight = wantCanvasHeight * zoom / 100; // Check canvas won't be too big if (wantCanvasWidth*wantCanvasHeight*PIXEL_RATIO*PIXEL_RATIO > CANVAS_MAX_PIXELS) { reducefactor = CANVAS_MAX_PIXELS / (wantCanvasWidth*wantCanvasHeight*PIXEL_RATIO*PIXEL_RATIO); } } // Set values if (wantWidth != divContainer.width()) { divContainer.width(wantWidth); } if (divContainer.height() != userHeight) { divContainer.height(userHeight + actualFixedToolbars * fixedToolbars.height()); } pagesContainer.width(wantWidth); pagesContainer.height(userHeight); var fixedTopToolbars = fixedToolbars.filter('.pdfemb-toolbar-top'); if (actualFixedToolbars > 0) { pagesContainer.css('top', fixedTopToolbars.height()); } var canvasscale = ( wantWidth - (self.vscrollbar ? vscrollbarwidth : 0) ) / pageWidth; if (self.fromZoom != 0 && self.toZoom != 0) { var oldMidX = oldScrollLeft + self.pccentreLeft; var oldMidY = oldScrollTop + self.pccentreTop; pagesContainer[0].scrollLeft = (oldScrollLeft + self.pccentreLeft ) * (self.toZoom / self.fromZoom) - self.pccentreLeft; pagesContainer[0].scrollTop = (oldScrollTop + self.pccentreTop) * (self.toZoom / self.fromZoom) - self.pccentreTop; } self.fromZoom = 0; self.toZoom = 0; self.wantCanvasWidth = wantCanvasWidth; self.wantCanvasHeight = wantCanvasHeight; self.reducefactor = reducefactor; self.wantWidth = wantWidth; self.wantHeight = wantHeight; self.canvasscale = canvasscale; self.zoom = zoom; }; pdfembPagesViewer.prototype.getTopVisiblePageNum = function () { var pagesContainer = this.divContainer.find('.pdfemb-pagescontainer'); var innerdivs = pagesContainer.find('.pdfemb-inner-div:visible'); if (innerdivs.length > 0) { return innerdivs.first().data('pageNum'); } return 1; }; pdfembPagesViewer.prototype.gotoPage = function (pageNum) { if (pageNum <= 0 || pageNum > this.pageCount) { return; } this.renderPage(pageNum, true); this.currentPageNum = pageNum; this.updatePageNumDisplay(pageNum); this.prerenderNearbyPages(pageNum); this.deallocateFarAwayPages(pageNum); }; pdfembPagesViewer.prototype.updatePageNumDisplay = function (pageNum) { var divContainer = this.divContainer; // Update page counters divContainer.find('div.pdfemb-toolbar .pdfemb-page-num').each(function (i, pageNumDisplay) { var jpageNumDisplay = $(pageNumDisplay); if (jpageNumDisplay.is('span')) { // Normal span area jpageNumDisplay.text(pageNum); } else { // User-changeable text jpageNumDisplay.val(pageNum); } }); // Enable or disable next/prev buttons if (pageNum < this.pageCount) { divContainer.find('.pdfemb-next').removeAttr('disabled').removeClass('pdfemb-btndisabled'); } else { divContainer.find('.pdfemb-next').attr('disabled', 'disabled').addClass('pdfemb-btndisabled'); } if (pageNum > 1) { divContainer.find('.pdfemb-prev').removeAttr('disabled').removeClass('pdfemb-btndisabled'); } else { divContainer.find('.pdfemb-prev').attr('disabled', 'disabled').addClass('pdfemb-btndisabled'); } }; pdfembPagesViewer.prototype.scrollPageIntoView = function (pageNum) { var pagesContainer = this.divContainer.find('.pdfemb-pagescontainer'); var innerdiv = pagesContainer.find('.pdfemb-page' + pageNum); pagesContainer.find('.pdfemb-inner-div').not('.pdfemb-page' + pageNum).hide(); innerdiv.show(); pagesContainer[0].scrollTop = 0; }; pdfembPagesViewer.prototype.renderPage = function (pageNum, scrollIntoView) { var self = this; var myInvalidationRound = self.invalidationRound; var divContainer = this.divContainer; // Using promise to fetch the page var pdfDoc = divContainer.data('pdfDoc'); var pagesContainer = divContainer.find('.pdfemb-pagescontainer'); var innerdiv = pagesContainer.find('.pdfemb-page' + pageNum); if (innerdiv.length && innerdiv.data('invalidation-round') >= myInvalidationRound) { if (scrollIntoView) { self.scrollPageIntoView(pageNum); } return; } var pendingInvalidationRound = innerdiv.data('pending-drawing-round'); if (pendingInvalidationRound >= myInvalidationRound) { // Already being drawn return; } else if (pendingInvalidationRound > 0 && pendingInvalidationRound < myInvalidationRound) { innerdiv.data('pending-drawing-round', myInvalidationRound); // Queue up this rendering - but we can't do it right now. return; } innerdiv.data('pending-drawing-round', myInvalidationRound); pdfDoc.getPage(pageNum).then(function (page) { if (!self.initialResize) { self.initialResize = true; self.setSizesBasedOnPage(page); self.resizeViewer(); self.createPageInnerDivs(); self.addGrabToPan(); self.pdfembMakeMobile(); } // Lookup again if only just created if (innerdiv.length == 0) { innerdiv = pagesContainer.find('.pdfemb-page' + pageNum); } // Is this page the same size/shape as the first? var widthfactor = innerdiv.data('widthfactor'), heightfactor = innerdiv.data('heightfactor'); if (!widthfactor || !heightfactor) { // calculate factors var vp = page.getViewport(1.0); // scale = 1.0 widthfactor = vp.width / self.pageWidth; heightfactor = vp.height / self.pageHeight; innerdiv.data('widthfactor', widthfactor); innerdiv.data('heightfactor', heightfactor); if (widthfactor != 1 || heightfactor != 1) { self.resizeInnerDivs(pageNum); } } var canvas = innerdiv.find('.pdfemb-the-canvas'); if (canvas.length == 0) { canvas = $('<canvas></canvas>', {'class': 'pdfemb-the-canvas'}); innerdiv.append(canvas); } if (scrollIntoView) { self.scrollPageIntoView(pageNum); } var canvasImg = null; var canvasCxt = null; var oldCanvasWidth = null; var oldCanvasHeight = null; var wantCanvasWidth = self.wantCanvasWidth, wantCanvasHeight = self.wantCanvasHeight, canvasscale = self.canvasscale, zoom = self.zoom; canvas.css('width', wantCanvasWidth * widthfactor); canvas.css('height', wantCanvasHeight * heightfactor); if (self.wantMobile) { divContainer.data('grabtopan').deactivate(); } else { divContainer.data('grabtopan').activate(); } // Render PDF page into canvas context var viewport = page.getViewport(canvasscale * zoom / 100); // if ( typeof offscreenCanvas !== 'undefined' ) { // releaseCanvas( offscreenCanvas ); // } var offscreenCanvas = document.createElement('canvas'); offscreenCanvas.width = wantCanvasWidth * PIXEL_RATIO * self.reducefactor * widthfactor; offscreenCanvas.height = wantCanvasHeight * PIXEL_RATIO * self.reducefactor * heightfactor; var ctx = offscreenCanvas.getContext('2d'); /* memory exceeded Total canvas memory use exceeds the maximum limit (224 MB). drawCallback — pdfemb-pv-core-4.6.2.js:776 */ var renderContext = { canvasContext: ctx, viewport: viewport, transform: [PIXEL_RATIO * self.reducefactor, 0, 0, PIXEL_RATIO * self.reducefactor, 0, 0] }; // No longer set transform on ctx explicitly // ctx.setTransform(PIXEL_RATIO, 0, 0, PIXEL_RATIO, 0, 0); // This was not always being picked up first time on some browsers - set via renderContext instead above var renderTask = page.render(renderContext); var drawCallback = function () { canvas[0].width = wantCanvasWidth * PIXEL_RATIO * self.reducefactor * widthfactor; canvas[0].height = wantCanvasHeight * PIXEL_RATIO * self.reducefactor * heightfactor; // Render any watermark to off-screen image self.preRenderCanvas(ctx, pageNum, zoom); // Copy from off screen canvas var image = ctx.getImageData(0, 0, offscreenCanvas.width, offscreenCanvas.height); canvas[0].getContext('2d').putImageData(image, 0, 0); /* memory exceeded Total canvas memory use exceeds the maximum limit (224 MB). drawCallback — pdfemb-pv-core-4.6.2.js:776 */ // Do annotations layer var annotationLayer = null; if (typeof self.annotationLayerFactories[pageNum] == 'undefined') { annotationLayer = self.annotationsLayerFactory.createAnnotationsLayerBuilder(innerdiv[0], page); self.annotationLayerFactories[pageNum] = annotationLayer; } else { annotationLayer = self.annotationLayerFactories[pageNum]; } if (annotationLayer != null) { annotationLayer.setupAnnotations(viewport, self.divContainer.data('newwindow')); } // End annotations layer // Do Text Layer var textLayer = null; if (typeof self.textLayerFactories[pageNum] == 'undefined') { textLayer = self.textLayerFactory.createTextLayerBuilder(innerdiv[0], page); self.textLayerFactories[pageNum] = textLayer; } else { textLayer = self.textLayerFactories[pageNum]; } if (textLayer != null) { textLayer.setupText(viewport); } // End Text Layer innerdiv.data('invalidation-round', myInvalidationRound); pendingInvalidationRound = innerdiv.data('pending-drawing-round'); innerdiv.data('pending-drawing-round', ''); if (pendingInvalidationRound > myInvalidationRound) { self.renderPage(pageNum, false); } } // Wait for rendering to finish renderTask.promise.then( function(){ if ('requestAnimationFrame' in window) { window.requestAnimationFrame(drawCallback); // releaseCanvas(canvas); } else { setTimeout(drawCallback, 1); // releaseCanvas(canvas); } }); function releaseCanvas(canvas) { canvas.width = 1; canvas.height = 1; const ctx = canvas.getContext('2d'); ctx && ctx.clearRect(0, 0, 1, 1); } }); }; pdfembPagesViewer.prototype.changeZoom = function (zoomdelta) { var self = this; var divContainer = self.divContainer; var oldzoom = self.zoom; var newzoom = oldzoom + zoomdelta; self.zoom = newzoom; divContainer.find('span.pdfemb-zoom').text(newzoom + '%'); self.fromZoom = oldzoom; self.toZoom = newzoom; var pagesContainer = divContainer.find('.pdfemb-pagescontainer'); self.pccentreLeft = pagesContainer.width()/2; self.pccentreTop = pagesContainer.height()/2; self.resizeViewer(); self.resizeInnerDivs(); self.invalidateAllPages(); self.renderPage(self.currentPageNum); // Ensure top-left remains where it was /*var pagesContainer = divContainer.find('.pdfemb-pagescontainer'); var cscrolltop = pagesContainer[0].scrollTop; pagesContainer[0].scrollTop = cscrolltop * newzoom / oldzoom; var cscrollleft = pagesContainer[0].scrollLeft; pagesContainer[0].scrollLeft = cscrollleft * newzoom / oldzoom; */ self.prerenderNearbyPages(self.currentPageNum); }; pdfembPagesViewer.prototype.queueRenderPage = function (num, noredraw) { var divContainer = this.divContainer; this.renderPage(num, noredraw); /*if (divContainer.data('pageRendering')) { divContainer.data('pageNumPending', num); } else { this.renderPage(num, noredraw); }*/ }; pdfembPagesViewer.prototype.addToolbar = function (atTop, fixed, showIsSecure) { var divContainer = this.divContainer; var self = this; var toolbar = $('<div></div>', {'class': 'pdfemb-toolbar pdfemb-toolbar' + (fixed ? '-fixed' : '-hover') + ' ' + (atTop ? ' pdfemb-toolbar-top' : 'pdfemb-toolbar-bottom')}); var prevbtn = $('<button class="pdfemb-prev" title="' + pdfemb_trans.objectL10n.prev + '" type="button"></button>'); toolbar.append(prevbtn); var nextbtn = $('<button class="pdfemb-next" title="' + pdfemb_trans.objectL10n.next + '" type="button"></button>'); toolbar.append(nextbtn); toolbar.append($('<div class="pdfemb-page-area">' + pdfemb_trans.objectL10n.page + ' <span class="pdfemb-page-num">0</span> / <span class="pdfemb-page-count"></span></div>')); var zoomoutbtn = $('<button class="pdfemb-zoomout" title="' + pdfemb_trans.objectL10n.zoomout + '" type="button"></button>'); toolbar.append(zoomoutbtn); var zoominbtn = $('<button class="pdfemb-zoomin" title="' + pdfemb_trans.objectL10n.zoomin + '" type="button"></button>'); toolbar.append(zoominbtn); toolbar.append($('<div>' + pdfemb_trans.objectL10n.zoom + ' <span class="pdfemb-zoom">100%</span></div>')); if (showIsSecure) { toolbar.append($('<div>' + pdfemb_trans.objectL10n.secure + '</div>')); } if (atTop) { divContainer.prepend(toolbar); } else { divContainer.append(toolbar); } // Add button functions prevbtn.on('click', function (e) { if (self.currentPageNum <= 1) { return; } self.gotoPage(self.currentPageNum - 1); self.jumpToTop(); }); nextbtn.on('click', function (e) { if (self.currentPageNum >= self.pageCount || self.currentPageNum == 0) { return; } self.gotoPage(self.currentPageNum + 1); self.jumpToTop(); }); zoominbtn.on('click', function (e) { if (self.zoom >= 800) { return; } self.changeZoom(10); }); zoomoutbtn.on('click', function (e) { if (self.zoom <= 20) { return; } self.changeZoom(-10); }); self.addMoreToolbar(toolbar); if (!fixed) { divContainer.on('mouseenter', function (e) { var htoolbar = divContainer.find('div.pdfemb-toolbar-hover'); if (htoolbar.data('no-hover') !== true) { htoolbar.show(); } }); divContainer.on('mouseleave', function (e) { var htoolbar = divContainer.find('div.pdfemb-toolbar-hover'); htoolbar.hide(); } ); divContainer.on('pdfembTouchTapped', function (e) { e.stopPropagation(); e.preventDefault(); // We seem to receive two tap events in quick succession, so toggle doesn't work // - it just gets cancelled immediately. // So set a timed lock on allowing the toggle. if (self.locktaps) { return; } self.locktaps = true; var htoolbar = divContainer.find('div.pdfemb-toolbar-hover'); var wanthide = htoolbar.is(':visible'); if (htoolbar.data('no-hover') == true) { wanthide = true; } if (wanthide) { htoolbar.hide(); } else { htoolbar.show(); } setTimeout(function() { // Release lock self.locktaps = false; }, 250); }); } // Powered by //console.log("Hello pdf embedder",pdfemb_trans.poweredby); if (pdfemb_trans.poweredby == "on") { toolbar.append($('<div></div>', {'class': 'pdfemb-poweredby'}).append($('<a href="https://wp-pdf.com/?utm_source=Poweredby&utm_medium=freemium&utm_campaign=Freemium" target="_blank">wp-pdf.com</a>'))); } }; pdfembPagesViewer.prototype.magnifyEvent = function (event) { //var gtpe = $(event.originalEvent.gtpelement); //var divContainer = gtpe.closest('.pdfemb-viewer'); var mag = event.originalEvent.magnification; if (mag == -1) { // End of touch this.resizeViewer(); this.resizeInnerDivs(); this.invalidateAllPages(); this.renderPage(this.getTopVisiblePageNum()); } else { var offset = this.divContainer.find('.pdfemb-pagescontainer').offset(); this.magnifyZoom(mag, event.originalEvent.centreLeft - offset.left, event.originalEvent.centreTop - offset.top); } }; pdfembPagesViewer.prototype.magnifyZoom = function (magnification, centreLeft, centreTop) { var oldzoom = this.zoom; var newzoom = Math.floor(oldzoom * magnification); if (newzoom < 20) { newzoom = 20; } if (newzoom > 800) { newzoom = 800; } this.zoom = newzoom; this.divContainer.find('span.pdfemb-zoom').text(newzoom + '%'); this.fromZoom = oldzoom; this.toZoom = newzoom; this.pccentreLeft = centreLeft; this.pccentreTop = centreTop; this.resizeViewer(); this.resizeInnerDivs(); this.invalidateAllPages(); }; pdfembPagesViewer.prototype.pdfembWantMobile = function(wantWidth, wantHeight) { return false; } pdfembPagesViewer.prototype.pdfembMakeMobile = function() { }; pdfembPagesViewer.prototype.addMoreToolbar = function(toolbar) { }; pdfembPagesViewer.prototype.jumpToTop = function() { }; pdfembPagesViewer.prototype.preRenderCanvas = function(ctx, pageNum, zoom) { }; PDFEMB_NS.pdfembPagesViewer = pdfembPagesViewer; });
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.28 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка