var pdfjsLib = window['pdfjs-dist/build/pdf']; var pdfcanvas = "the-canvas"; var cnt = 100; function renderPage() { var el_title = document.getElementById('pdfprogress'); el_title.innerHTML = 'Идет подготовка страницы ...'; pageRendering = true; // Using promise to fetch the page pdfDoc.getPage(pageNum).then(function(page) { var canvas = document.getElementById(pdfcanvas); var context = canvas.getContext('2d'); //var viewport = page.getViewport({scale: scale}); var viewport = page.getViewport({scale: 1.5}); // var viewport = page.getViewport(canvas.width / page.getViewport(0.5).width) canvas.height = viewport.height; canvas.width = viewport.width; // Render PDF page into canvas context var renderContext = { canvasContext: context, viewport: viewport }; var renderTask = page.render(renderContext); // Wait for rendering to finish renderTask.promise.then(function() { pageRendering = false; if (pageNumPending !== null) { // New page rendering is pending renderPage(pageNumPending); pageNumPending = null; } el_title.innerHTML = ''; }); }); } function prevclick(){ prevurl = prevlink + '/'+ scale; location.href = prevurl; return; } function nextclick(){ nexturl = nextlink + '/'+ scale; location.href = nexturl; return; } function pdfzoomin(){ scale += 0.25; setzoom(scale); renderPage(); } function pdfzoomout(){ scale -= 0.25; setzoom(scale); renderPage(); } function resize_plus(){ cnt += 5; newpdfzoom(cnt); } function resize_minus(){ cnt -= 5; newpdfzoom(cnt); } function newpdfzoom(czoom){ var status = czoom+"%"; document.getElementById(pdfcanvas).style.width = status; document.getElementById('zoomstatus').innerHTML = status; setzoom('pdfscale', czoom); } function getzoom( name ){ var results = document.cookie.match ( '(^|;) ?' + name + '=([^;]*)(;|$)' ); if ( results ){ return parseFloat(unescape(results[2])); } else { return null; } } function setzoom( cname, cvalue, exdays = 30 ) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function startpdfviewer(newpdf){ var div = document.getElementById(pdfcanvas); currpdf = getzoom('currpdf'); if (currpdf == newpdf){ czoom = getzoom('pdfscale'); if (czoom !== null & czoom > 10) { newpdfzoom(czoom); } } else { setzoom('currpdf', newpdf); } pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) { pdfDoc = pdfDoc_; renderPage(); }); }