Thread Perl und DDE
(28 answers)
Opened by bianca at 2011-10-16 19:31
Hallo Bianca,
2011-10-18T11:28:13 bianca Eben, das schien mir auch so. 2011-10-18T11:28:13 bianca Nein, OpenOffice::OODoc macht alles selbst; installiertes OpenOffice ist nicht erforderlich. Der Modulname ist so gesehen etwas irreführend, denn .odt ist ja gerade nicht ein proprietäres OpenOffice-Format sondern ein gänzlich freies Format, das auch von diversen anderen Tools unterstützt wird, wie z.B. AbiWord, MS-Word (ab 2007 SP2) und eben OpenOffice::OODoc. Ein Office-Programm wird nur zur einmaligen Erstellung des/der Templates und bei den Clients zur Weiterbearbeitung und zum Drucken benötigt. 2011-10-18T11:28:13 bianca Genau dafür ist das Modul da. Hier ein Minimalbeispiel (ungetestet): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!usr/bin/perl use strict; use warnings; use OpenOffice::OODoc; my $file = "mydoc.odt"; # die Template-Datei mit den Platzhaltern my $firstname = "Bianca"; # ein Wert aus der Adress-DB my $report = "Dieser Text soll an das Dokument angehängt werden."; utf8::encode($report); # .odt ist standardmäßig utf-8 utf8::encode($firstname); my $doc = odfDocument(file => $file) or die $!; # Hier wird ein Platzhalter $FIRSTNAME$ durch den Wert aus der DB ersetzt: $doc->selectElementsByContent('\$FIRSTNAME\$', $firstname); # Hier wird dem Dokument ein Text angehängt: $doc->appendParagraph (text => $report); $doc->save('out_' . $file) or die $!; # Jetzt kann das fertige Dokument an den Benutzer ausgeliefert werden. HTH Grüße payx PS: Was mir hier gerade unangenehm auffällt, ist dass [mod] und [cpan] das hier behandelte Modul einfach nicht finden. Editiert von payx: Script korrigiert: Filter muss in single quotes stehen (mir unklar warum). Last edited: 2011-10-19 10:01:59 +0200 (CEST) |