... eval { my $consts = Win32::OLE::Const->Load( "Microsoft Word" ); my $msword = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit') || die "cannot get or create word: $!"; $msword->{Visible} = 0; $msword->{DisplayAlerts} = $consts->{wdAlertsNone}; $msword->Documents->OpenNoRepairDialog( $in_filename ) || die "cannot open $in_filename - ", Win32::OLE->LastError(); $msword->ActiveDocument->SaveAs( { FileName => $out_filename, FileFormat => $consts->{wdFormatPDF}, } ); $msword->ActiveDocument->Close( 0 ); }; ...