You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PDFView.aspx.cs" Inherits="Swift.web.Remit.PDFView" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="../js/pdf/pdf.js"></script> <script src="../js/pdf/pdf.worker.js"></script> <style type="text/css"> #the-canvas { border: 1px solid black; direction: ltr; } </style> </head> <body> <form id="form1" runat="server"> <div> <input type="button" id="prev" value="Previous" /> <input type="button" id="next" value="Next" /> <span>Page: <span id="page_num"></span>/ <span id="page_count"></span></span> </div>
<canvas id="the-canvas"></canvas> </form> <script language="JavaScript"> /** * Disable right-click of mouse, F12 key, and save key combinations on page * By Arthur Gareginyan (https://www.arthurgareginyan.com) * For full source code, visit https://mycyberuniverse.com */ window.onload = function () { document.addEventListener("contextmenu", function (e) { e.preventDefault(); }, false); document.addEventListener("keydown", function (e) { //document.onkeydown = function(e) { // "I" key if (e.ctrlKey && e.shiftKey && e.keyCode == 73) { disabledEvent(e); } // "J" key if (e.ctrlKey && e.shiftKey && e.keyCode == 74) { disabledEvent(e); } // "S" key + macOS if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { disabledEvent(e); } // "U" key if (e.ctrlKey && e.keyCode == 85) { disabledEvent(e); } // "F12" key if (event.keyCode == 123) { disabledEvent(e); } }, false); function disabledEvent(e) { if (e.stopPropagation) { e.stopPropagation(); } else if (window.event) { window.event.cancelBubble = true; } e.preventDefault(); return false; } }; </script>
<script type="text/javascript">
// If absolute URL from the remote server is provided, configure the CORS // header on that server. var url = sessionStorage.getItem("fileLoadPath");
// Loaded via <script> tag, create shortcut to access PDF.js exports. var pdfjsLib = window['pdfjs-dist/build/pdf'];
// The workerSrc property shall be specified. pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';
var pdfDoc = null, pageNum = 1, pageRendering = false, pageNumPending = null, scale = 1.3, canvas = document.getElementById('the-canvas'), ctx = canvas.getContext('2d');
/** * Get page info from document, resize canvas accordingly, and render page. * @param num Page number. */ function renderPage(num) { pageRendering = true; // Using promise to fetch the page pdfDoc.getPage(num).then(function (page) { var viewport = page.getViewport({ scale: scale }); canvas.height = viewport.height; canvas.width = viewport.width;
// Render PDF page into canvas context var renderContext = { canvasContext: ctx, 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; } }); });
// Update page counters document.getElementById('page_num').textContent = num; }
/** * If another page rendering in progress, waits until the rendering is * finised. Otherwise, executes rendering immediately. */ function queueRenderPage(num) { if (pageRendering) { pageNumPending = num; } else { renderPage(num); } }
/** * Displays previous page. */ function onPrevPage() { if (pageNum <= 1) { return; } pageNum--; queueRenderPage(pageNum); } document.getElementById('prev').addEventListener('click', onPrevPage);
/** * Displays next page. */ function onNextPage() { if (pageNum >= pdfDoc.numPages) { return; } pageNum++; queueRenderPage(pageNum); } document.getElementById('next').addEventListener('click', onNextPage);
/** * Asynchronously downloads PDF. */ pdfjsLib.getDocument(url).promise.then(function (pdfDoc_) { pdfDoc = pdfDoc_; document.getElementById('page_count').textContent = pdfDoc.numPages;
// Initial/first page rendering renderPage(pageNum); }); </script> </body> </html>
|