use strict; use warnings; use Win32::OLE; use Win32::OLE::Const "Acrobat"; my $acrobat = Win32::OLE->new("AcroExch.App", "Quit"); my $avdoc = Win32::OLE->new("AcroExch.AVDoc"); my $pdfs = getPDF("/from/some/folder"); foreach my $pdf( @{$pdfs} ) { $avdoc->Open( $pdf, "" ); my $pddoc = Win32::OLE->new("AcroExch.PDDoc"); $pddoc->Open($pdf); my $pp = $pddoc->GetNumPages; #index starts at 0 my $totalpages = $pp; if ( $pp ) { $pp--; } eval { print "Printing $pdf with $totalpages pages\n"; $avdoc->PrintPagesSilent(0,$pp,1,1,0); }; if ( $@ ) { print "PDF did not print due to Adobe error.\n"; } $acrobat->Exit; }