| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta charset="UTF-8">
 
-   <title>Previous/Next example</title>
 
- </head>
 
- <body>
 
- <h1>'Previous/Next' example</h1>
 
- <div>
 
-   <button id="prev">Previous</button>
 
-   <button id="next">Next</button>
 
-      
 
-   <span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>
 
- </div>
 
- <div>
 
-   <canvas id="the-canvas" style="border: 1px solid black; direction: ltr;"></canvas>
 
- </div>
 
- <script src="../../node_modules/pdfjs-dist/build/pdf.js"></script>
 
- <script id="script">
 
-   //
 
-   // If absolute URL from the remote server is provided, configure the CORS
 
-   // header on that server.
 
-   //
 
-   var url = '../../web/compressed.tracemonkey-pldi-09.pdf';
 
-   //
 
-   // In cases when the pdf.worker.js is located at the different folder than the
 
-   // PDF.js's one, or the PDF.js is executed via eval(), the workerSrc property
 
-   // shall be specified.
 
-   //
 
-   pdfjsLib.GlobalWorkerOptions.workerSrc =
 
-     '../../node_modules/pdfjs-dist/build/pdf.worker.js';
 
-   var pdfDoc = null,
 
-       pageNum = 1,
 
-       pageRendering = false,
 
-       pageNumPending = null,
 
-       scale = 0.8,
 
-       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, });
 
-       // Support HiDPI-screens.
 
-       var outputScale = window.devicePixelRatio || 1;
 
-       canvas.width = Math.floor(viewport.width * outputScale);
 
-       canvas.height = Math.floor(viewport.height * outputScale);
 
-       canvas.style.width = Math.floor(viewport.width) + "px";
 
-       canvas.style.height =  Math.floor(viewport.height) + "px";
 
-       var transform = outputScale !== 1
 
-         ? [outputScale, 0, 0, outputScale, 0, 0]
 
-         : null;
 
-       // Render PDF page into canvas context
 
-       var renderContext = {
 
-         canvasContext: ctx,
 
-         transform: transform,
 
-         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
 
-    * finished. 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.
 
-    */
 
-   var loadingTask = pdfjsLib.getDocument(url);
 
-   loadingTask.promise.then(function(pdfDoc_) {
 
-     pdfDoc = pdfDoc_;
 
-     document.getElementById('page_count').textContent = pdfDoc.numPages;
 
-     // Initial/first page rendering
 
-     renderPage(pageNum);
 
-   });
 
- </script>
 
- </body>
 
- </html>
 
 
  |