1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Mit Java odt-Dateien editieren

Discussion in 'Programmieren' started by Wallus, Jul 10, 2008.

Thread Status:
Not open for further replies.
  1. Wallus

    Wallus Byte

    Hi,

    ich möchte gerne Daten aus einer Datenbank an bestimmte Positionen in einer odt-Datei schreiben. Dazu habe ich ein odt-Template, in dem ich die bestimmten Positionen mit Text kennzeichne (z.B. "<<<Kundenadresse>>>"), der dann durch die Daten aus der Datenbank ersetzt werden.
    Das ganze soll mit Java realisiert werden und die Datenbankzugriffe sind kein Problem.
    odt-Dateien sind gezippte Dateien, in denen alle möglichen Daten gespeichert werden, die dann nachher im OOo-Writer angezeigt werden. Dieses Archiv mit der Endung .odt besitzt dann folgende Dateien/Ordner:

    mimetype
    Configurations2/statusbar/
    Configurations2/accelerator/current.xml
    Configurations2/floater/
    Configurations2/popupmenu/
    Configurations2/progressbar/
    Configurations2/menubar/
    Configurations2/toolbar/
    Configurations2/images/Bitmaps/
    content.xml
    styles.xml
    meta.xml
    Thumbnails/thumbnail.png
    settings.xml
    META-INF/manifest.xml

    Die Datei, in welcher der relevante Text steht, ist die Datei "content.xml".

    Meine Vorgehensweise wäre also folgendermaßen:
    Mit der Klasse ZipInputStream hole ich mir die einzelnen Dateien in der odt-Datei und schreibe sie mit FileOutputStream in einzelne Dateien (quasi ganz normales entzippen).
    Danach greife ich auf die neue Datei "content.xml" zu und überschreibe die gekennzeichneten Positionen mit den Daten aus der Datenbank (am besten mit nem xml-reader).
    Und als letztes müssen die Dateien wieder gezippt werden (mit der Endung "odt").

    Meine Fragen sind jetzt:
    1.: Auf welche Art und Weise zippe ich die Dateien wieder? Gibt es da sowas wie ne Klasse ZipOutputStream?
    2.: Gibt es nicht eine deutlich einfachere Methode? Denn da sind einige Sachen, die nicht wirklich praktisch sind:
    a) Man bekommt temporäre Dateien, die nachher wieder zu einem Zipfile zusammengefügt werden und gelöscht werden müssen.
    b) Man möchte eigentlich nur die content.xml Datei ändern und durchwandert alle anderen. Es wäre deutlich einfacher die ganze Template-Datei zu kopieren, und dann direkt in die gezippte content.xml zu schreiben...

    Hat jemand damit Erfahrungen?

    Edit: Die 1. Frage hat sich schon erledigt. Es gibt die Klasse ZipOutputStream.
     
    Last edited: Jul 10, 2008
  2. Wallus

    Wallus Byte

    so, habe das programm jetzt fertig. falls es jemanden interessiert: ich hab es so gemacht wie angekündigt. habe keine andere lösung gefunden. das schein aber kein problem zu sein.
     
Thread Status:
Not open for further replies.

Share This Page