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 ); $cr->show_page;
Bindings to the poppler PDF library via the Glib interface. Allows querying of a PDF file structure and rendering to various output targets.
Poppler module provides complete bindings to the poppler PDF library through the Glib interface. Find out more about poppler at http://poppler.freedesktop.org.
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.
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.
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'.
In order to make things more Perlish,
Poppler customizes the API generated by Glib::Object::Introspection in a few spots:
Poppler::Document::save_a_copyare provided which remove the need to provide filenames as URIs (e.g. "file:///absolute/path"). The module accepts either real URIs or regular system paths and will convert as necessary using the
URImodule. Any of these formats should work:
$p = Poppler::Document->new_from_file( 'file:///home/user/file.pdf' ); $p = Poppler::Document->new_from_file( '/home/user/file.pdf' ); $p = Poppler::Document->new_from_file( 'file.pdf' ); # likewise for save() # likewise for save_a_copy()
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.