Skip to content

Instantly share code, notes, and snippets.

@rossta
Created May 1, 2018 18:10
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 rossta/ba13b32e413b305f163139398ac2ba72 to your computer and use it in GitHub Desktop.
Save rossta/ba13b32e413b305f163139398ac2ba72 to your computer and use it in GitHub Desktop.
Example using PDF.js
import range from 'lodash/range'
import('pdfjs/dist').then(pdfjs => {
pdfjs
.getDocument('wibble.pdf')
.then(pdf => {
const pagePromises = range(1, pdf.numPages).map(number => pdf.getPage(number))
return Promise.all(pagePromises)
})
.then(
pages => {
const scale = 1.5
const canvases = pages.map(page => {
const viewport = page.getViewport(scale)
// Prepare canvas using PDF page dimensions
const canvas = document.createElement('canvas')
canvas.height = viewport.height
canvas.width = viewport.width
// Render PDF page into canvas context
const canvasContext = canvas.getContext('2d')
const renderContext = { canvasContext, viewport }
page.render(renderContext).then(() => console.log('Page rendered'))
return canvas
})
canvases.forEach(canvas => document.body.appendChild(canvas))
},
error => console.log('Error', error),
)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment