Win32::OLE Word-Datei auslesen - manuelle Zeilenubrüche entferne
ask
- perl
0 Patrick Andrieu0 ask
Hallo, hallo,
ich möchte mit Perl gerne ein MS Word-Dokument einlesen,
alle manuellen Zeilenumbrüche gegen ein Leerzeichen ersetzen
und dann den modifizierten Inhalt in eine Textdatei schreiben.
Die Datei auslesen und als Textdatei schreiben bekomme ich hin,
allein auf den Inhalt kann ich nicht "ersetzend" zugreifen.
Mein Script (ohne Ansatz des Ersetzen):
use Win32::OLE;
use Win32::OLE::Const 'Microsoft.Word';
$Win32::OLE::Warn = 3;
my $file_in = 'katalog.doc';
my $file_out = 'korr.txt';
my $word = Win32::OLE->new('Word.Application','Quit') or die "Word problem: ",Win32::OLE->LastError();
my $document = $word->Documents->Open($file_in) or die "Word problem: ",Win32::OLE->LastError();
# und hier fehlt's
$document->SaveAs($file_out, wdFormatText);
Für Vorschläge bin ich dankbar.
Danke und Gruß AS
Hallo ask!
und hier fehlt's
Vielleicht hilft dieser Archivbeitrag:
http://forum.de.selfhtml.org/archiv/2002/7/t16281/
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo ask!
und hier fehlt's
Vielleicht hilft dieser Archivbeitrag:
http://forum.de.selfhtml.org/archiv/2002/7/t16281/
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo Patrick,
vielen Dank, obgleich ich den Beitrag auch schon studiert hatte,
hat er doch die Lösung gebracht.
Fast hatte ich es schon, nur das ich beim Bezeichner "Content"
nicht das "->{Text}" beigegeben hatte.
Nun kann ich mit dem content machen, was ich will.
use Win32::OLE qw(in);
$Win32::OLE::Warn = 3;
my $pkorr = '/mein/pfad/';
my $file_in = $pkorr.'katalog.doc';
my $file_out = $pkorr.'korr.txt';
my $Word = Win32::OLE->new('Word.Application', 'Quit') or die "Word problem: ",Win32::OLE->LastError();
my $Doc = $Word->Documents->Open($file_in) or die "Word problem: ",Win32::OLE->LastError();
my $content = $Doc->{Content}->{Text};
$content =~ s/was/das/g;
open(OUT,">$file_out"); print OUT $content; close OUT;
Viele Grüße aus Berlin Andreas