2011-10-16T20:13:00 AndiE
2011-10-17T20:01:52 hlubenowKann mir das immer noch nicht richtig vorstellen ...
2011-10-17T20:21:56 payxSiehe z.B. diesen Artikel als Anregung: http://www.linux-magazin.de/Heft-Abo/Ausgaben/2004...
2011-10-18T11:28:13 biancaJa, das ist ziemlich genau das, was ich haben möchte.
2011-10-18T11:28:13 biancaBrauchen diese Module ein installiertes OO? Das soll nämlich vermieden werden, wenn es geht.
2011-10-18T11:28:13 biancaWir wollen quasi mehr oder weniger die Felder auf Dateiebene ersetzen, ohne dass Office vorhanden sein muss. Geht das auch irgendwie?
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.
2011-10-18T13:01:18 payxPS: Was mir hier gerade unangenehm auffällt, ist dass [mod] und [cpan] das hier behandelte Modul einfach nicht finden.
2011-10-19T17:11:11 payxich habe es mit cpan ... install OpenOffice::OODoc installiert. Probleme gab es damit meiner Erinnerung nach nicht.
2011-10-19T17:51:12 biancaKlappt ausgezeichnet!!!!
2011-10-19T17:51:12 biancaAllerdings muss ich bei dieser Konstellation das utf8::encode() weg lassen sonst stimmen die Umlaute nicht: Win7, Strawberry 5.10, OpenOffice.
2011-10-20T06:50:54 payxUm so besser. Gilt das für mein Beispielscript?
2011-10-20T06:50:54 payxDann ist es bei Dir wohl im utf-8-Format gespeichert (so wie es dieser Server hier beim Klick auf dl ausliefert).
2011-10-20T06:50:54 payxWenn Du das Script z.B. im iso-8859-1-Format (oder Windows-cp1252) speicherst, brauchst Du die Konvertierung wieder. Und künftig musst Du halt einfach darauf achten, dass alles als utf-8 an die Dokumente übertragen wird, je nach dem, was Deine DB liefert usw.
2011-10-20T06:50:54 payxViel Erfolg weiterhin
2011-10-18T08:40:26 hlubenowAlso nochmal: Du willst eine zentrale Datenbank auf einem Linux-Server betreiben (SQL?), der Benutzer soll auf einem Windows-Rechner in MS Word eine Dokumentvorlage auswählen, mit einer Adressverwaltung (welcher?) auf die Serverdatenbank zugreifen und die Adressdaten dann direkt in sein Word-Dokument erhalten.
2011-10-18T09:24:29 bianca2011-10-18T08:40:26 hlubenowAlso nochmal: Du willst eine zentrale Datenbank auf einem Linux-Server betreiben (SQL?), der Benutzer soll auf einem Windows-Rechner in MS Word eine Dokumentvorlage auswählen, mit einer Adressverwaltung (welcher?) auf die Serverdatenbank zugreifen und die Adressdaten dann direkt in sein Word-Dokument erhalten.
Nein, um Gottes Willen.
Der Benutzer hat eine Webanwendung im Browser vor Augen. Die Adressverwaltung ist im Backend ein Perlscript. Ob dahinter eine DB oder ein ASCII File steht soll mal egal sein.
Benutzer sagt, "Adresse von HLUBENOW verwenden mit der Vorlage Standard Firmenbrief"!
Die Vorlage ist als Datei auf dem Server abgelegt im Verzeichnis ~/vorlagen
Jetzt geht das Perlscript hin, öffnet diese Vorlagendatei, setzt dort die ausgewählte Adresse ein und schickt dann diese Vorlage als Attachment an den Clientbrowser. Dort wiederum ist die Extension lokal mit der Office-Anwendung verknüpft, sodass sich dann nach dem Klick auf "Ausführen" das lokale Office-Programm öffnet.
Das wars.
2011-10-18T18:19:15 rostiHeute würde ich das so machen: Datenhaltung (Stammdaten) in MySQL (wie die dahin kommen, ist Deine Sache: Webfrontend) und die Dokumente werden mit PDF::Create erstellt. Mache Dazu Vorlagen (Templates), die PDFs werden dann aufgrund weiterer Formulareingaben generiert und können gedruckt und abgeheftet werden.
Das läuft auf jeder Plattform und Du bist nicht an irgendwelche proprietären Datenformate, geschweige denn Anwendungen (MS) gebunden.
Wär das was?