# odt-Datei erzeugen



## manuche (9. Apr 2009)

Hallo,

ich möchte aus meinem Code heraus eine odt-Datei für OpenOffice erzeugen. Beim Recherchieren bin ich über die Lib ODFDOM (ehemals ODF4j) von OpenOffice selbst gestolpert.
Hörte sich ganz gut an und die Beispiele sahen auch recht trivial aus! Allerdings bekomme ich direkt am Anfang beim Ausführen des Codes eine Exception um die Ohren geworfen!
Coder verkürzt:

```
try {
    File f = new File ("C:\\test.odt");
    OdfDocument odfDoc = OdfDocument.loadDocument(f);
    OdfFileDom odfContent = odfDoc.getContentDom();
    XPath xpath = XPathFactory.newInstance().newXPath();
    xpath.setNamespaceContext(new OdfNamespace());
}catch (Exception e) {
    e.printStackTrace();
}
```
Zeile 17 entspricht hier: OdfDocument odfDoc = OdfDocument.loadDocument(f);


Und hier die Exception:


> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/dom/DocumentImpl
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(Unknown Source)
> at java.security.SecureClassLoader.defineClass(Unknown Source)
> ...


Das die Klasse nicht gefunden wird ist mir klar allerdings kann ich nicht nachvollziehen wo die Klasse herkommt. Musste nichts der gleichen importieren oder sonstiges! Kompilieren ging auch ohne Fehlermeldung 
Weiss jemand von euch was da zu tun ist oder hat evtl sogar eine bessere Lösung?

Gruß manuche


----------



## FArt (9. Apr 2009)

The ODF Toolkit Project


----------



## Wildcard (9. Apr 2009)

Für komplexere Dinge kannst du die Datei auch von Java aus auch direkt mit OpenOffice erstellen. Dafür gibt es UNO und den handlichen UNO Wrapper NOA


----------



## manuche (9. Apr 2009)

Das wäre dann eher OpenOffice steuern als nur eine Datei erzeugen oder? Würde zur Not auch gehen!
Schau ich mir mal an! Mal wieder ein Dankeschön Wildcard


----------



## Wildcard (9. Apr 2009)

manuche hat gesagt.:


> Das wäre dann eher OpenOffice steuern als nur eine Datei erzeugen oder? Würde zur Not auch gehen!
> Schau ich mir mal an! Mal wieder ein Dankeschön Wildcard


Ja, damit steuert man OpenOffice. Allerdings kann man OpenOffice auch Headless, also ohne grafische Oberfläche betreiben und hat über NOA/UNO den vollen Funktionsumfang der Suite zur Verfügung. Einfache Dinge erledigst du besser mit dem ODF Toolkit, weil du dafür kein OpenOffice brauchst, aber wenn du alle Möglichkeiten von OOo ausschöpfen willst/musst, (TOC, Indizies, Variablen, Charts, ...) dann über NOA/UNO.


----------



## manuche (9. Apr 2009)

Leider will ODF nicht in einer RCP Umgebung... Frag mich nicht wieso, mit "normalen" Java hat es funktioniert, dann hab ich es in mein Plugin implementiert und aus war das Spiel!
Wenn ich also eh schon mit Extensions arbeite warum dann also nicht NOA?


----------



## Wildcard (9. Apr 2009)

Das stimmt so nicht, da ich OpenOffice sehr erfolgreich in RCP einsetze, sowohl embedded, als auch Headless. Wie du vielleicht gesehen hast, wird auf der NOA seite auch NOA4e angeboten um OpenOffice direkt in Eclipse als Editor zu embedden, es funktioniert also definitiv.
Genauere Fehlerbeschreibung wäre also hilfreich...


----------

