PDF - Library for PDF access and manipulation in Perl


PDF - Library for PDF access and manipulation in Perl


  use PDF;
  $pdf=PDF->new ;
  $result=$pdf->TargetFile( filename );
  print "is a pdf file\n" if ( $pdf->IsaPDF ) ;
  print "Has ",$pdf->Pages," Pages \n";
  print "Use a PDF Version  ",$pdf->Version ," \n";
  print "and it is crypted  " if ( $pdf->IscryptedPDF) ;
  print "filename with title",$pdf->GetInfo("Title"),"\n";
  print "and with subject ",$pdf->GetInfo("Subject"),"\n";
  print "was written by ",$pdf->GetInfo("Author"),"\n";
  print "in date ",$pdf->GetInfo("CreationDate"),"\n";
  print "using ",$pdf->GetInfo("Creator"),"\n";
  print "and converted with ",$pdf->GetInfo("Producer"),"\n";
  print "The last modification occurred ",$pdf->GetInfo("ModDate"),"\n";
  print "The associated keywords are ",$pdf->GetInfo("Keywords"),"\n";
  my (startx,starty, endx,endy) = $pdf->PageSize ($page) ;


The main purpose of the PDF library is to provide classes and functions that allow to read and manipulate PDF files with perl. PDF stands for Portable Document Format and is a format proposed by Adobe. A full description of this format can be found in the Portable Document Reference Manual by Adobe Systems Inc.. For more details about PDF, refer to:


The main idea is to provide some ``basic'' modules for access the information contained in a PDF file. Even if at this moment is in an early development stage, the scripts in the example directory show that it is usable.

is_pdf script test a list of files in order divide the PDF file from the non PDF using the info provided by the files themselves. It doesn't use the .pdf extension, it uses the information contained in the file.

pdf_version returns the PDF level used for writing a file.

pdf_pages gives the number of pages of a PDF file.

pagedump.pl prints some information about individual pages in a PDF-file. Although the information as such are not very useful, it demontrates well some more complex aspects of the library. Check the function doprint in this program on how to handle all possible data occuring in a PDF.

The library is now splitted in 2 section :

PDF::Core that contains the data structure, the constructor and low level access fuctions;

PDF::Parse all kind of functions to parse the PDF-files and provide information about the content.

Check the help-files of these modules for more details.


There are 2 variables that can be accessed:

Contain the version of the library installed.

This variable is false by default. Change the value if you want more verbose output messages from library.


  Copyright (c) 1998 - 2000 Antonio Rosella Italy antro@tiscalinet.it, Johannes Blach dw235@yahoo.com

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


The latest version of this library is likely to be available from:


and at any CPAN mirror


Fabrizio Pivari ( pivari@geocities.com ) for all the suggestions about life, the universe and everything. Brad Appleton ( bradapp@enteract.com ) for his suggestions about the module organization. Thomas Drillich for the iso latin1 support Ross Moore ( ross@ics.mq.edu.au ) for ReadInfo fix

 PDF - Library for PDF access and manipulation in Perl