The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


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. 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, Johannes Blach 

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 ( ) for all the suggestions about life, the universe and everything. Brad Appleton ( ) for his suggestions about the module organization. Thomas Drillich for the iso latin1 support Ross Moore ( ) for ReadInfo fix

1 POD Error

The following errors were encountered while parsing the POD:

Around line 120:

=back doesn't take any parameters, but you said =back 4