node-pdf-image

by mooz

Provides an interface to convert PDF's pages to png files in Node.js by using ImageMagick

205 Stars 80 Forks Last release: Not found MIT License 52 Commits 4 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

pdf-image

Provides an interface to convert PDF's pages to png files in Node.js by using ImageMagick.

Installation

npm install pdf-image

Ensure you have

convert
,
gs
, and
pdfinfo
(part of poppler) commands.

Ubuntu

sudo apt-get install imagemagick ghostscript poppler-utils

OSX (Yosemite)

brew install imagemagick ghostscript poppler

Usage

Convert single page:

var PDFImage = require("pdf-image").PDFImage;

var pdfImage = new PDFImage("/tmp/slide.pdf"); pdfImage.convertPage(0).then(function (imagePath) { // 0-th page (first page) of the slide.pdf is available as slide-0.png fs.existsSync("/tmp/slide-0.png") // => true });

Convert full file

var PDFImage = require("pdf-image").PDFImage;

var pdfImage = new PDFImage("/tmp/slide.pdf"); pdfImage.convertFile().then(function (imagePaths) { // [ /tmp/slide-0.png, /tmp/slide-1.png ] });

Convert full file and merge result into single image

var PDFImage = require("pdf-image").PDFImage;
var pdfImage = new PDFImage("/tmp/slide.pdf", {
  combinedImage: true
});

pdfImage.convertFile().then(function (imagePaths) { // /tmp/slide.png });

Express

Following example shows an example of pdf-image in Express, which gives URLs for each pages of a PDF like

http://example.com:3000/tmp/slide.pdf/0.png
.
  app.get(/(.*\.pdf)\/([0-9]+).png$/i, function (req, res) {
    var pdfPath = req.params[0];
    var pageNumber = req.params[1];

var PDFImage = require("pdf-image").PDFImage;
var pdfImage = new PDFImage(pdfPath);

pdfImage.convertPage(pageNumber).then(function (imagePath) {
  res.sendFile(imagePath);
}, function (err) {
  res.send(err, 500);
});

});

Options

Following example shows an example of how to add imagemagick command-line options (you can find the complete list here -> http://www.imagemagick.org/script/convert.php):

var pdfImage = new PDFImage(pdfPath, {
  convertOptions: {
    "-resize": "2000x2000",
    "-quality": "75"
  }
});

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.