easypdf
Version:
A simple library that use PDF.js for rendering pdf file on electron
45 lines (38 loc) • 1.3 kB
JavaScript
const { PDFJS } = require('../pdfjs/build/pdf');
const fs = require('fs');
function getThumbnail(pdf, width) {
let canvas = document.createElement('canvas');
const CONTEXT = canvas.getContext('2d');
return new Promise((resolve, reject) => {
PDFJS.getDocument(pdf).then(pdf_document => {
pdf_document.getPage(1).then(page => {
let viewport = page.getViewport(width / page.getViewport(1).width)
canvas.width = width;
canvas.height = viewport.height;
let render_context = {
canvasContext: CONTEXT,
viewport: viewport
};
page.render(render_context).then(() => {
let base64_data = canvas.toDataURL('image/jpeg', 1);
canvas.remove();
resolve({
save(file_path) {
base64_data = base64_data.replace(/^data:image\/jpeg;base64,/, '');
fs.writeFileSync(file_path, base64_data, 'base64');
},
render(img_tag_selector) {
let img_tag = document.querySelector(img_tag_selector);
img_tag.src = base64_data;
}
});
});
}).catch((err) => {
reject(err);
});
}).catch((err) => {
reject(err);
});
});
}
module.exports = getThumbnail;