Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
120 lines (83 sloc) 3.89 KB
PDF::Create - create PDF files
PDF::Create allows you to create PDF documents using a large
number of primitives, and emit the result as a PDF file or
stream. PDF stands for Portable Document Format.
Documents can have several pages, a table of content, an
information section and many other PDF elements. More
functionnalities will be added as needs arise.
Documents are constructed on the fly so the memory footprint is
not tied to the size of the pages but only to their number.
It's main advantage over the other PDF modules is that it does
not depend on other modules and is perl only (no compiler needed).
If you want a quick and dirty way of creating pdf's, PDF::Create
is for you. If you need a complete Framework to create complex
PDF stuff, you better dive into the PDF::API2 based modules.
More information about this module is included in this package.
use PDF::Create;
my $pdf = new PDF::Create('filename' => 'mypdf.pdf',
'Version' => 1.2,
'PageMode' => 'UseOutlines',
'Author' => 'Fabien Tassin',
'Title' => 'My title',
my $root = $pdf->new_page('MediaBox' => [ 0, 0, 612, 792 ]);
# Add a page which inherits its attributes from $root
my $page = $root->new_page;
# Prepare 2 fonts
my $f1 = $pdf->font('Subtype' => 'Type1',
'Encoding' => 'WinAnsiEncoding',
'BaseFont' => 'Helvetica');
my $f2 = $pdf->font('Subtype' => 'Type1',
'Encoding' => 'WinAnsiEncoding',
'BaseFont' => 'Helvetica-Bold');
# Prepare a Table of Content
my $toc = $pdf->new_outline('Title' => 'Document',
'Destination' => $page);
$toc->new_outline('Title' => 'Section 1');
my $s2 = $toc->new_outline('Title' => 'Section 2');
$s2->new_outline('Title' => 'Subsection 1');
$page->stringc($f2, 40, 306, 426, "PDF::Create");
$page->stringc($f1, 20, 306, 396, "version $PDF::Create::VERSION");
# Add another page
my $page2 = $root->new_page;
$page2->line(0, 0, 612, 792);
$page2->line(0, 792, 612, 0);
$toc->new_outline('Title' => 'Section 3');
$pdf->new_outline('Title' => 'Summary');
# Add something to the first page
$page->stringc($f1, 20, 306, 300,
'by Fabien Tassin <>');
# Add the missing PDF objects and a the footer then close the file
Quick answer:
perl -MCPAN -e 'install PDF::Create'
Long answer:
To install manually, cd to the directory containing the unpacked
distribution and do one of the following:
a. Create a makefile by running Makefile.PL using the perl
program into whose library you want to install and then run
make three times:
perl Makefile.PL
make test
make install
b. To install into a private library, for example your home
make test
make pure_install
- Fabien Tassin
Original Author of PDF::Create
- Markus Baertschi,
I have taken over maintenence of PDF::Create as Fabien has disappeared
and did no longer maintain it in the last years.
The last version of PDF::Create from Fabien is 0.06. All never versions
have been modified by me.
I maintain PDF::Create in git. You can access the repository directly