Robert, Thanks for the code. I tried to tweak it around the 1024-char limitation:
> sub btnChange_Click { > my $text1 = $re->Text(); > my $maxlen = 1024; I changed that to: my $maxlen = 2+ 2 * length $text1; and left everything else the same. The problem now is that there is a limitation to around 32k. Here is the code I worked out, saving to a temporary file, but there still is the limitation of 32k. Is there a way to work around this? sub re_text($;$) { my ($re, $newtext) = shift; use File::Temp; my $tmp = File::Temp::mktemp('rtfXXXX'); if (defined $newtext) { open my $file, '>:utf8', $tmp or die $!; print $tmp $newtext; close $file; $re->Load($tmp, 0x0020 | 0x0001 | 65001 << 16); # SF_USECODEPAGE | SF_TEXT | CP_UTF8 0 while unlink $tmp; return 1; } else { $re->Save($tmp, 0x0020 | 0x0001 | 65001 << 16); # SF_USECODEPAGE | SF_TEXT | CP_UTF8 open my $file, '<:utf8', $tmp or die $!; local $/ = undef; $_ = <$file>; close $file; 0 while unlink $tmp; return $_; } } Thanks, Dan