Skip to content

Instantly share code, notes, and snippets.

@jonls
Created October 9, 2010 22:03
Show Gist options
  • Save jonls/618649 to your computer and use it in GitHub Desktop.
Save jonls/618649 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import sys, os
import poppler
import cairo
if __name__ == '__main__':
uri = 'file://%s' % os.path.abspath(sys.argv[1])
prefix = sys.argv[2]
width = int(sys.argv[3])
height = int(sys.argv[4])
doc = poppler.document_new_from_file(uri, None)
for i in range(doc.get_n_pages()):
page = doc.get_page(i)
page_width, page_height = page.get_size()
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
cr = cairo.Context(surface)
cr.translate(0, 0)
cr.scale(width/page_width, height/page_height)
page.render(cr)
cr.set_operator(cairo.OPERATOR_DEST_OVER)
cr.set_source_rgb(1, 1, 1)
cr.paint()
surface.write_to_png('%s-%u.png' % (prefix, i+1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment