Hallo,
ich hab da ein kleines Problem. Keine Ahnung, ob das jetzt genau hier reinpasst...
Ich hab eine Java-Anwendung (Swing), in welcher ich in einer Briefvorlage (Writerdokument .odt) Platzhalter dynamisch ersetze und dieses Dokument dann speicher oder ausdrucke.
Und zwar gehe ich so vor: über TrueZip greife ich direkt auf die content.xml innerhalb der odt-Datei zu, lese sie ein und wandle die dortigen Platzhalter (z.B. <TEXT>) um, indem ich sie mit Strings austausche. Das klappt soweit ganz gut. Jetzt hab ich aber einen Platzhalter, der eigentlich aus mehreren Werten bzw. Zeilen bestehen kann, also so eine Art Auflistung. Ich weiss aber vorher nicht, wieviele Zeilen es geben soll. Ist auch von Fall zu Fall unterschiedlich. Ich weiss jetzt nicht, wie ich in dem String, welchen ich mit dem Platzhalter austausche, einen Zeilenumbruch einfügen kann, der dann in der content.xml der Writer-Datei auch als Zeilenumbruch erkannt wird. Hab's schon mit \r und \n versucht, klappt aber nicht.
Hab auch schon direkt in die content.xml reingeschaut. Dort gibt es styles für die verschiedenen Absätze, die durchnummeriert (P1, P2, P3...) und dann dem jeweiligen Absatz zugewiesen werden (<text:p text:style-name="P8"><TEXT></text:p> ). Ich müsste also für jede Zeile, die ich innerhalb von <TEXT> habe, so einen Absatz erstellen. Ich möchte aber den Platzhalter so in dem Writer-Dokument drinstehen haben.
Bin gerade ein bisschen ratlos. Vielleicht weiss jemand von euch, wie ich das hinkriegen kann?
Gruss
Bert
Writer-Dokument dynamisch füllen
Moderator: Moderatoren
Writer-Dokument dynamisch füllen
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Writer-Dokument dynamisch füllen
OK, hab gerade selbst was rausgefunden. Falls es noch jemanden interessiert oder jemand brauchen kann: Wenn ich in meinen String, welcher den Platzhalter ersetzen soll ein <text:line-break /> einfüge, dann ergibt das im Writer-Dokument einen Zeilenumbruch.
Also, der Platzhalter
<TEXT>
wird in der Java-Anwendung durch den String
"Wert1<text:line-break />Wert2<text:line-break />Wert3...usw."
ersetzt.
Dann ergibt das:
Wert1
Wert2
Wert3
Gruss
Bert
Also, der Platzhalter
<TEXT>
wird in der Java-Anwendung durch den String
"Wert1<text:line-break />Wert2<text:line-break />Wert3...usw."
ersetzt.
Dann ergibt das:
Wert1
Wert2
Wert3
Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3