A gulp-compatible wrapper for pdftocairo that converts PDF to PNG/JPEG/PS/EPS/SVG

Usage no npm install needed!

<script type="module">
  import gulpPdftocairo from '';


gulp-pdftocairo Build Status npm version Dependency Status

A gulp-compatible wrapper for pdftocairo that converts PDF to PNG/JPEG/PS/EPS/SVG


A quick wrapper for pdftocairo so that I can convert pdf files to a few different formats. Supports file streams containing either streamed or buffered data (except no streams for raster formats since pdftocairo is buggy :() and since gulp says horrible things will happen if I buffer streamed files to cover up for this.

This is my first gulp plugin. Feedback on the things done wrong is welcome.


  • Add more command line options or at least just let you pass arbitrary arguments


This can easily be used in a gulpfile to convert a pdf to various other formats. A simple gulpfile would be:

var gulp = require('gulp')
  , pdftocairo = require('gulp-pdftocairo')

gulp.task('to-png', function() {
  return gulp.src('*.pdf')
    .pipe( pdftocairo({format: 'png', resolution: 800}) )
    .pipe( gulp.dest('./') )


To use this, you'll need pdftocairo installed, which can probably be installed with a package manager. Currently left as an exercise for the reader.

$ npm install gulp-pdtocairo


require('gulp-pdftocairo')( options )

Create a transform stream that operates on file objects.


  • format: Must be one of svg, png, ps, eps, jpg
  • resolution: For raster files, specifies the resolution of the output
  • transparent: For raster files supporting alpha (i.e. png), whether background is transparent or not
  • command: defaults to pdftocairo

Returns: a gulp-compatible transform stream


Testing is performed using a mocha/chai and a pdftocairo test stub (test/stubs/pdftocairo.js) that does just enough to pass the tests as if it were pdftocairo. To test with the real thing, just change the PDFTOCAIRO variable in the test/test.js


(c) 2015 Ricky Reusser. MIT License