Rob Kinyon


PDF::Writer - PDF writer abstraction layer


This document describes version 0.05 of PDF::Writer, released Oct 25, 2005.


  use PDF::Writer;

  # Or, to explicitly specify a back-end ...
  use PDF::Writer 'pdflib';
  use PDF::Writer 'pdfapi2';
  use PDF::Writer 'mock';

  my $writer = PDF::Writer->new;


This is a generalized API that allows a module that generates PDFs to transparently target multiple backends without changing its code. The currently supported backends are:

  • PDF::API2

    Available from CPAN

  • PDFlib (versions 3+)

    Available from "/" in http;. There is both a pay and free version. PDF::Writer will work with both, within their limitations. Please see the appropriate documentation for details.

  • Mock

    This allows modules that target PDF::Writer to write their tests against a mock interface. Please see PDF::Writer::mock for more information.

If both PDF::API2 and pdflib_pl are available, PDF::API2 is preferred. If neither is available, a run-time exception will be thrown. You must explicitly load the PDF::Writer::mock driver, if you wish to use it.


  • new()

    This acts as a factory, loading the appropriate PDF::Writer driver.


We use Devel::Cover to test the code coverage of our tests. Below is the Devel::Cover report on this module's test suite.


Originally written by:

Autrijus Tang <>

Currently maintained by:

Rob Kinyon <>

Stevan Little <>

Thanks to Infinity Interactive for generously donating our time.


Copyright 2004, 2005 by Autrijus Tang <>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.