Skip to content

Instantly share code, notes, and snippets.

@yurydelendik
Created May 10, 2014 01:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yurydelendik/513e6d9592fc4fd3a520 to your computer and use it in GitHub Desktop.
Save yurydelendik/513e6d9592fc4fd3a520 to your computer and use it in GitHub Desktop.
Renders all pages at once
<!doctype html>
<html>
<head>
<!-- In production, only one script (pdf.js) is necessary -->
<!-- In production, change the content of PDFJS.workerSrc below -->
<script type="text/javascript" src="../../src/shared/util.js"></script>
<script type="text/javascript" src="../../src/shared/colorspace.js"></script>
<script type="text/javascript" src="../../src/shared/function.js"></script>
<script type="text/javascript" src="../../src/shared/annotation.js"></script>
<script type="text/javascript" src="../../src/display/api.js"></script>
<script type="text/javascript" src="../../src/display/metadata.js"></script>
<script type="text/javascript" src="../../src/display/canvas.js"></script>
<script type="text/javascript" src="../../src/display/webgl.js"></script>
<script type="text/javascript" src="../../src/display/pattern_helper.js"></script>
<script type="text/javascript" src="../../src/display/font_loader.js"></script>
<script type="text/javascript">
'use strict';
PDFJS.workerSrc = '../../src/worker_loader.js';
//PDFJS.disableWorker = true;
//PDFJS.disableRange = true;
//
// Fetch the PDF document from the URL using promises
//
PDFJS.getDocument('../../web/compressed.tracemonkey-pldi-09.pdf').then(function(pdf) {
var promise = Promise.resolve();
for (var i = 1; i <= Math.min(50, pdf.numPages); i++) {
// Using promise to fetch the page
promise = promise.then(function (pageNum) {
return pdf.getPage(pageNum).then(function (page) {
var scale = 0.25;
var viewport = page.getViewport(scale);
var canvas = document.createElement('canvas');
canvas.className = 'page';
canvas.width = viewport.width;
canvas.height = viewport.height;
document.body.appendChild(canvas);
var context = canvas.getContext('2d');
//
// Render PDF page into canvas context
//
var renderContext = {
canvasContext: context,
viewport: viewport,
continueCallback: function (next) {
console.log('.');
next();
}
};
// run rendering only when all pages are loaded
promise.then(function () {
page.render(renderContext);
});
});
}.bind(null, i));
}
});
</script>
<style>
.page { border: 1px solid black; }
</style>
</head>
<body>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment