Some googling turned up
this by
Util. ++ to him. This is a cut down version that could get you started.
#!/usr/bin/perl
use strict;
use warnings;
use Win32::OLE;
use Win32::OLE::Enum;
my $word = Win32::OLE->GetActiveObject('Word.Application');
my $document = $word->ActiveDocument;
my $paragraphs = $document->Paragraphs();
my $enumerate = Win32::OLE::Enum->new($paragraphs);
while( my $paragraph = $enumerate->Next()) {
my $style = $paragraph->{Style}->{NameLocal};
my $text = $paragraph->{Range}->{Text};
$text =~ tr{\n\r}{}d;
$text =~ tr{\x0b}{\n};
printf qq{%s -> ***%s***\n}, $style, $text;
}
It assumes a document is open in Word. My simple document parsed as
Heading 1 -> ***Heading 1 text***
Heading 2 -> ***Heading 2 text***
Normal -> ***Normal***
For producing HTML I would consider something like
HTML::Element.