Moduł PDF::Parse
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis tresci
Obsluga modulu PDF::Parse
PDF::Parse to jedna (obok PDF::Core) z czesci modulu PDF. Dzieki temu modulowi mozemy przeparsowac dowolny plik PDF oraz wyciagnac rozne informacje na jego temat. Dzieki nim mozemy ustalic czy dany plik jest na pewno zbudowanym poprawnie pdfem, dowiedziec sie o jego tworcy, temacie, programie jaki zostal uzyty do jego stworzenia etc.
PDF::Parse API
W sklad API samego PDF::Parse wchodza nastepujace metody:
$pdf->TargetFile($filename);
ktore okresla plik do przeparsowania
$pdf->LoadPageInfo;
ktore dokonuje faktycznego parsowania
$pdf->Version;
$pdf->IsaPDF;
$pdf->IscryptPDF;
$pdf->GetInfo(key);
$pdf->Pages;
$pdf->PageSize([$page]);
$pdf->PageRotation([$page]);
ktore sluza do wyciagania interesujacych nas infomacji
Uzycie
#!/usr/bin/perl -w
use PDF::Parse;
use warnings;
use strict;
my $filename = shift;
print "::: ${filename} :::\n";
my $pdf = PDF::Parse::->new;
$pdf->TargetFile($filename);
$pdf->LoadPageInfo;
my $version = $pdf->Version;
my $is_pdf = $pdf->IsaPDF;
my $is_crypt = $pdf->IscryptPDF;
my $pagenum = $pdf->Pages;
my $rotation = $pdf->PageRotation();
if ( $is_pdf ) {
my $keywords = $pdf->GetInfo( "Keywords" ) || "N/A";
my $title = $pdf->GetInfo( "Title" ) || "N/A";
my $subject = $pdf->GetInfo( "Subject" ) || "N/A";
my $author = $pdf->GetInfo( "Author" ) || "N/A";
my $cr_date = $pdf->GetInfo( "CreationDate" ) || "N/A";
my $creator = $pdf->GetInfo( "Creator" ) || "N/A";
my $producer = $pdf->GetInfo( "Producer" ) || "N/A";
my $mod_date = $pdf->GetInfo( "ModDate" ) || "N/A";
print $version, ": ", ( $is_crypt? "encrypted: " : "not encrypted: " ), $pagenum, " pages ", $rotation, " global rotation\n";
print "Title: ${title}\nSubject: ${subject}\nAuthor: ${author}\nCreation date: ${cr_date}\n" .
"Creator: ${creator}\nProducer: ${producer}\nModification date: ${mod_date}\nKeywords: ${keywords}\n";
for ( my $act_page = 1; $act_page <= $pagenum; ++$act_page )
{
my @act_size = $pdf->PageSize( $act_page );
my $act_rotation = $pdf->PageRotation( $act_page );
print "\tPage #${act_page}: size >>>@{act_size}<<< rotation >>>${act_rotation}<<<\n";
}
}
else {
print "This is not a PDF file.\n";
}
Wynik dzialania na pdfie-podaniu o wize amerykanska
Dodatkowe informacje
Link do oryginalnej strony z dokumentacja w CPANie
Autor modulu i kontakt do niego
Copyright (c) 1998 - 2000 Antonio Rosella Italy antro@tiscalinet.it, Johannes Blach dw235@yahoo.com
Kontakt i informacje o autorze opracowania
Autor: WS
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.