Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Word and Win32::OLE (retrieving text from a word document)

by Foggy Bottoms (Monk)
on Jun 16, 2003 at 15:55 UTC ( #266217=note: print w/replies, xml ) Need Help??

in reply to Word and Win32::OLE

You can try this little script. It should work just fine.
package readWord;

use strict;
use Win32::OLE qw(in with);

require Exporter;
use vars qw(@ISA @EXPORT);
#use LTG::DocBuddy::Config qw($DEBUG); 

@ISA    = qw(Exporter);
@EXPORT = qw(readActiveDoc);

sub readActiveDoc
# this method returns the name of the active document and a hash containing every single
# word found in the document. Hence it is ready for use
   if (my $word = Win32::OLE->GetActiveObject('Word.Application'))# connect to word document
      # next line for debug only
      # print "\nSuccessfully connected to existing word";   
      my $docName = $word->ActiveDocument->Name; # retrieve name

      my $wordRange = $word->ActiveDocument->Content; 
      return ($docName,$wordRange);
      return undef;

The method returns undef if no document was found. It actually take currently open document but it's easy to change and actually make it another file. Please note that the document needn't be saved which actually makes this code even better.
  • Comment on Re: Word and Win32::OLE (retrieving text from a word document)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://266217]
[Corion]: Meh - the Rosetta code for copying a file with Perl will fail for binary files

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2017-08-24 08:15 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (365 votes). Check out past polls.