Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > Encoding problem with automation of Word by Perl

Reply
Thread Tools

Encoding problem with automation of Word by Perl

 
 
Dave
Guest
Posts: n/a
 
      06-01-2005
In the code snippet below @foutput is an array of 'paragraphs': which are
arrays of 'text items': which are arrays with two elements, the first being
a text string and the second another text string which holds formatting
information (currently 'b' for bold 's' for superscript and '' for normal).

The code works in than it opens a Word document and produces formatted text
therein. The problem is that non-ascii Unicode characters do not transfer
cleanly. I expect that Perl and Word are making different assumptions about
what encoding is in use (Word seems to be recieving utf-8 but interpreting
it as 'code page 1252') but I don't know how change it.

Here is the code snippet (use strict and use warnings are in operation at
the top of the file) :

elsif ($opt{w}) {
use Win32::OLE;
my $word = CreateObject Win32::OLE 'Word.Application' or die $!;
$word->{'Visible'} = 1;
my $document = $word->Documents->Add;
my $selection = $word->Selection;
my $i = 0;
foreach my $para (@foutput) {
$i++; last if $i == 5; # just a few for debugging
foreach (@{$para}) {
if (@{$_}[1] eq "") {
$selection->TypeText(@{$_}[0]);
}
elsif (@{$_}[1] eq "b") {
$selection->Font->{Bold} = 1;
$selection->TypeText(@{$_}[0]);
$selection->Font->{Bold} = 0;
}
elsif (@{$_}[1] eq "s") {
$selection->Font->{Superscript} = 1;
$selection->TypeText(@{$_}[0]);
$selection->Font->{Superscript} = 0;
}
else {
die "Unknown formatting: " . @{$_}[1];
}
}
$selection -> TypeParagraph;
}


 
Reply With Quote
 
 
 
 
Dave
Guest
Posts: n/a
 
      06-01-2005

"Dave" <> wrote in message
news:qZkne.5780$%...
> In the code snippet below @foutput is an array of 'paragraphs': which are
> arrays of 'text items': which are arrays with two elements, the first
> being a text string and the second another text string which holds
> formatting information (currently 'b' for bold 's' for superscript and ''
> for normal).
>
> The code works in than it opens a Word document and produces formatted
> text therein. The problem is that non-ascii Unicode characters do not
> transfer cleanly. I expect that Perl and Word are making different
> assumptions about what encoding is in use (Word seems to be recieving
> utf-8 but interpreting it as 'code page 1252') but I don't know how change
> it.
>
> Here is the code snippet (use strict and use warnings are in operation at
> the top of the file) :
>
> elsif ($opt{w}) {
> use Win32::OLE;
> my $word = CreateObject Win32::OLE 'Word.Application' or die $!;
> $word->{'Visible'} = 1;
> my $document = $word->Documents->Add;
> my $selection = $word->Selection;
> my $i = 0;
> foreach my $para (@foutput) {
> $i++; last if $i == 5; # just a few for debugging
> foreach (@{$para}) {
> if (@{$_}[1] eq "") {
> $selection->TypeText(@{$_}[0]);
> }
> elsif (@{$_}[1] eq "b") {
> $selection->Font->{Bold} = 1;
> $selection->TypeText(@{$_}[0]);
> $selection->Font->{Bold} = 0;
> }
> elsif (@{$_}[1] eq "s") {
> $selection->Font->{Superscript} = 1;
> $selection->TypeText(@{$_}[0]);
> $selection->Font->{Superscript} = 0;
> }
> else {
> die "Unknown formatting: " . @{$_}[1];
> }
> }
> $selection -> TypeParagraph;
> }
>


Sorry, posted too soon as I found the answer shortly afterwards in the Docs
to Activestate perl. Adding:

Win32::OLE->Option(CP => Win32::OLE::CP_UTF8());below the line use
Win32::OLE;solves the problem.Dave


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with IE automation in Perl shankar_perl_rookie Perl Misc 1 07-01-2010 09:05 PM
Supressing the ctrl-c and other keys during word automation in automation apondu ASP .Net 0 07-19-2007 09:10 PM
OLE Automation: question about Word SaveAs Greg Howard Perl 1 07-02-2004 04:30 PM
Word automation Aleks Microsoft Certification 1 06-10-2004 07:04 PM
Modifying a Word document without using Word Automation Michael G. Schneider ASP General 5 12-16-2003 06:52 PM



Advertisments