Erste Schritte OpenDocument auslesen

dragonfight86

Mitglied
Hallo zusammen,
ich möchte gerne Inhalte aus .odt und .odc Dokumenten auslesen bekomme jedoch keine saubere Anzeige des Textes, ich meine Herausgefunden zu haben das dies an der Formatierung liegt so dass man die erst vom Text trennen muss. Das ganze soll wohl mit dem ODF Toolkit funktionieren, ich bekomme es nicht hin.

Was ich gemacht habe, das Toolkit runtergeladen und in die Libary gepackt und versucht anzusprechen. Leider ohne Erfolg.

Was mache ich falsch bzw, ist es der richtige Weg?

P.s. der Pfad ist korrekt.
 

dragonfight86

Mitglied
Ganz ehrlich, ich habe keine Ahnung und finde auch keine Beispiele die mit diesem Toolkit arbeiten.
Versucht habe ich es mit "Odf" anzusprechen aber da gibt es Fehlermeldungen bzw. kennt er das so nicht, ich kann mir vorstellen das ich vergessen habe einen wesentlichen Teil der Bibliothek zu zufügen.


Java:
package rechnungsverwaltung;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;

public class Rechnungsverwaltung
{
    public static void main(String[] args) throws FileNotFoundException
    {
        String r = "C:\\Users\\ca.martinez\\Desktop\\Projektwoche 2\\Neuer Ordner\\089 Karjalainen GR.odt";
             
       
        try
        {
            FileReader read = new FileReader(r);
            BufferedReader buff = new BufferedReader(read);
            while(read.ready())
            {
                System.out.println(buff.readLine());
            }
        }
        catch(Exception ex)
        {         
        }
    }   
}
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    58,7 KB · Aufrufe: 64

Harry Kane

Top Contributor
Die Namen der odf-jars, die du eingebunden hast, enden alle auf javadoc. Ich tippe darauf, dass die jars gar keine Klassen enthalten. Schaue mal an dem Ort, wo du die jars her hast, nach welchen die auf "binary" enden.
 

dragonfight86

Mitglied
Hallo, ich habe meinen Fehler gefunden. Ich habe anscheinend die Dokumentation eingebunden statt der Klassen.

Richtig stq genau das war mein Problem ich habe versucht es anzusprechen aber "TextDocument" wurde nicht erkannt. Jetzt habe ich darauf Zugriff also geht es zum nächsten Schritt :)
 

dragonfight86

Mitglied
Das ist das was ich momentan habe, anscheinend habe ich nun Zugriff auf die .odt Datei doch wie lese ich das nun aus :(

Java:
public static void main(String[] args) throws FileNotFoundException
    {
        String r = "C:\\Users\\ca.martinez\\Desktop\\Projektwoche 2\\Neuer Ordner\\089 Karjalainen GR.odt";
                       
        try
        {
//            FileReader read = new FileReader(r);
//            BufferedReader buff = new BufferedReader(read);         
           
            TextDocument.loadDocument(r);
            TextDocument Rechnung = TextDocument.loadDocument(r);
           
            while(Rechnung.)
            {
                System.out.println();
            }
        }
        catch(Exception ex)
        {         
        }
    }
 

dragonfight86

Mitglied
Neuer Versuch, ich habe herausgefunden das die OpenOffice Dokumente in einem Archiv gespeichert sind nun versuche ich diese zu entpacken was zum teil funktioniert doch gibt es Zugriffsprobleme beim Outputstream :(

Java:
public static void main(String[] args) throws FileNotFoundException, Exception
    {
        String r = "C:\\Users\\ca.martinez\\Desktop\\Projektwoche 2\\Neuer Ordner\\089 Karjalainen GR.odt";
        String s = "C:\\Users\\ca.martinez\\Desktop\\Beispiel.odt";
       
        ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(s));
       
        ZipEntry entry = zipInputStream.getNextEntry();
        while(entry != null){
           
            String outFilename = entry.getName();
            System.out.println(outFilename);
           
            new File("C:\\Users\\ca.martinez\\Desktop\\zip\\" + outFilename).mkdirs();           
            OutputStream out = new FileOutputStream("C:\\Users\\ca.martinez\\Desktop\\zip\\" + outFilename);
               
               
            entry = zipInputStream.getNextEntry();
        }
          
        zipInputStream.close();
 

Harry Kane

Top Contributor
doch wie lese ich das nun aus
Die API-Dokumentation gibt es hier: http://incubator.apache.org/odftoolkit/0.6.2-incubating/simple/index.html
Wenn du eine Instanz von TextDocument hast, könntest du so in etwa weitermachen:
Java:
Iterator<Paragraph> paragraphIterator = Rechnung.getParagraphIterator();
while(paragraphIterator.hasNext()){
    Paragraph para = paragraphIterator.next();
    System.out.println(para.getTextContent());
}
doch gibt es Zugriffsprobleme beim Outputstream
*seufz* Und wie äussern die sich? Welche Fehlermeldungen gibt es?
 

Schmetterhand

Aktives Mitglied
Die Bibliothek nimmt Dir doch die ganze Arbeit mit dem Entpacken etc… schon ab!
Eine einfache Suche im Netz ergab mehrere Treffer zur Benutzung:
Hier ein "getting started": https://incubator.apache.org/odftoolkit/simple/gettingstartguide.html
Oder etwas tiefergehend: http://langintro.com/odfdom_tutorials/
Manchmal ist es auch einfach schon gut, sich den Quellcode der Bibliothek anzuschauen, damit man nicht mehr herumraten muß; die meisten Klassennamen sind sowieso selbstsprechend ;)

Gruß,
Schmetterhand
 

dragonfight86

Mitglied
Das mag schon sein, ich verstehe es nicht :( also mittlerweile bin ich soweit das ich mit ZipFile die Datei entpacke und mit getChildren mir das auch in eine Liste packen kann. Hier hängt es wieder ich bekomme keinen Zugriff auf "table:table" wo meine Daten drin stehen. Stelle ich mich zu doof an oder ist das Projekt einfach nichts für Einsteiger es ist deprimierend.

Java:
public String getText(String fileName) throws Exception {
   
        TextBuffer = new StringBuffer();
        ZipFile zipFile = new ZipFile(fileName);
        Enumeration entries = zipFile.entries();
        ZipEntry entry;
       
        while(entries.hasMoreElements()) {
            entry = (ZipEntry) entries.nextElement();
                           
            if (entry.getName().equals("Object 1/content.xml")) {
               
                TextBuffer = new StringBuffer();               
                SAXBuilder sax = new SAXBuilder();
                Document doc = sax.build(zipFile.getInputStream(entry));
                Element rootElement = doc.getRootElement();

                Element e = rootElement.getChild("body");               
                //Element f = e.getChild("office:spreadsheet");
                //Element g = f.getChild("table:table");
                //String x = rootElement.getValue();

                List list = rootElement.getChildren();

        for (int i = 0; i < list.size(); i++) {
           Element node = (Element) list.get(i);
           System.out.println(node);          
        }              

                //processElement2(rootElement);
                break;
            }
        }                 
        System.out.println("The text extracted from the OpenOffice document = " + TextBuffer.toString());
        return TextBuffer.toString();       
    }
 

Harry Kane

Top Contributor
Bist du sicher, dass der Name des zip entries wirklich "Object 1/content.xml" ist? Ich habe gerade eine ODT angelegt, und sie enthält die Datei "content.xml" in der obersten Ebene der ODT-Datei und nicht in einem Unterverzeichnis.
Offenbar benutzt du jdom. Damit kenne ich mich leider nicht aus. Mir ist aber aufgefallen, dass du bei Aufrufen des Typs
Java:
rootElement.getChild("body")
nur die methode mit einem Stringparameter anwendest und nicht die Methode mit einem Namespace-Parameter, obwohl in meiner Datei alle XML Elemente einen Namespace-Prefix haben.
Mir ist rätselhaft, warum du dir das manuelle Auslesen der Datei antun möchtest, anstatt das odftoolkit zu nehmen.
 

dragonfight86

Mitglied
Hallo Harry,
weil ich es mit odf nicht hinbekommen habe. Die Dokumentation dazu hat mich nicht weitergebracht. Zwar konnte ich wie beschrieben auf den Text zugreifen, jedoch nicht auf den Text in der Tabelle welche im odt eingebunden ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
Viktim Website auslesen Java Basics - Anfänger-Themen 8
T Auslesen mehrerer jComboBox (-en) Java Basics - Anfänger-Themen 4
A letzen 2 Zahlen eines int auslesen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben