A Word document can compute its own page and line count as can be seen on the File->Properties->Statistics page. These values can also be calculated via the Word object model as follows:
#!/usr/bin/perl -l
use strict;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Word';
my $word = Win32::OLE->new('Word.Application');
my $doc = $word->Documents->Open('c:\temp\test2.doc');
die "Unable to open document ", Win32::OLE->LastError() unless $do
+c;
my $pages = $doc->ComputeStatistics(wdStatisticPages);
my $lines = $doc->ComputeStatistics(wdStatisticLines);
my $words = $doc->ComputeStatistics(wdStatisticWords);
print "Pages:\t", $pages;
print "Lines:\t", $lines;
print "Words:\t", $words;
$doc->Close;
__END__
I couldn't get the Word Const to work under
-w without generating warnings (although it works fine under
warnings). So here are the required constants just in case:
wdStatisticWords = 0
wdStatisticLines = 1
wdStatisticPages = 2
wdStatisticCharacters = 3
wdStatisticParagraphs = 4
wdStatisticCharactersWithSpaces = 5
wdStatisticFarEastCharacters = 6
--
John.