Jeremy Volkening > Poppler > Poppler



Annotate this POD


Open  0
View/Report Bugs
Module Version: 1.0101   Source  


Poppler - Bindings to the poppler PDF rendering library


  use Poppler;

  # initialize using filename 
  my $pdf = Poppler::Document->new_from_file( 'file.pdf' );

  # or, initialize using scalar data
  open my $fh, '<:raw', 'file.pdf';
  read ($fh, my $data, -s 'file.pdf')
  close $fh;
  my $pdf = Poppler::Document->new_from_data( $data );

  # get some general info
  my $n_pages = $pdf->get_n_pages;
  my $title   = $pdf->get_title; 
  # etc ...

  # get the first page
  my $page = $pdf->get_page( 0 );

  # get page size
  my ($w, $h)  = $page->get_size;

  # or, for backward compatibility
  my $dims = $page->get_size; # a Poppler::Dimension object
  my $w = $dims->get_width;
  my $h = $dims->get_height;

  # do other fancy things (get page links, annotations, movies, etc)
  # (see poppler-glib documentation for details)

  # render to a Cairo surface
  use Cairo;
  my $surface = Cairo::ImageSurface->create( 'argb32', 100, 100 );
  my $cr = Cairo::Context->create( $surface );
  $page->render_to_cairo( $cr );


Bindings to the poppler PDF library via the Glib interface. Allows querying of a PDF file structure and rendering to various output targets.


The Poppler module provides complete bindings to the poppler PDF library through the Glib interface. Find out more about poppler at

As of version 1.01, no XS is used directly but bindings are provided using GObject introspection and the Glib::Object::Introspection module. See the "SYNOPSIS" in Poppler for a brief example of how the module can be used. For detailed documentation on the available classes and methods, see the poppler glib documentation for the C libraries and the Glib::Object::Introspection documentation for a description of how methods are mapped between the C libraries and the Perl namespace.


new_from_file ($filename)

Takes a system path or URI to a PDF file as an argument and returns a Poppler::Document object. The poppler-glib library itself requires a full URI (e.g. "file:///home/user/file.pdf") but this module attempts to convert regular system paths if provided via the URI module.

new_from_data ($data)

Takes a PDF data chunk as an argument and returns a Poppler::Document object.


For details on the classes and methods available beyond the constructors listed above, please refer to the canonical documentation for the C library listed under "SEE ALSO" in Poppler. A general discussion of how these classes and methods map to the Perl equivalents can be found in the Glib::Object::Introspection documentation. Generally speaking, a C function such as 'poppler_document_get_title' would map to 'Poppler::Document->get_title'.

Customizations and overrides

In order to make things more Perlish, Poppler customizes the API generated by Glib::Object::Introspection in a few spots:



2009-2016 Cornelius , < cornelius.howl _at_ >
2016-present Jeremy Volkening <>


Copyright (C) 2009-2016 by c9s (Cornelius) Copyright (C) 2016 by Jeremy Volkening

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: