2 Stimmen

Beim Verwenden von docx4j in Android zum Lesen von Word-Dokumenten tritt folgendes Problem auf

Ziel: Inhalt eines Word-Dokuments in die Konsole lesen

Verwendete Umgebung: Windows 7 32bit Eclipse IDE Indigo Android 4.1 API 16 Java 1.6 Bibliothek: docx4j-2.8.0

Hier ist der Code-Schnipsel, den ich verwende, um den Text des Word-Dokuments auf der Konsole auszugeben

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(Environment.getExternalStorageDirectory().getAbsolutePath(), selectedFromList));

MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart(); 
System.out.println("Dateiinhalt --->>>>>" +documentPart.getContent());    

DocPropsCorePart docPropsCorePart = wordMLPackage.getDocPropsCorePart();
CoreProperties coreProps = (CoreProperties)docPropsCorePart.getJaxbElement();

System.out.println("'dc:title' ist " + coreProps.getTitle().getValue().getContent().get(0));
System.out.println(coreProps.getTitle().getValue().getClass().getName() );
System.out.println("'dcterms:created' ist " + coreProps.getCreated().getClass().getName() );

Wenn ich versuche, den obigen Code auszuführen, erhalte ich die folgenden Probleme Der Eclipse Logcat zeigt folgende Protokolle an

08-10 12:22:37.853: I/dalvikvm(1761): Could not find method javax.xml.bind.JAXBContext.createMarshaller, referenced from method 

org.docx4j.openpackaging.packages.WordprocessingMLPackage.save
08-10 12:22:37.853: W/dalvikvm(1761): VFY: unable to resolve virtual method 7579: Ljavax/xml/bind/JAXBContext;.createMarshaller ()Ljavax/xml/bind/Marshaller;
08-10 12:22:37.853: D/dalvikvm(1761): VFY: replacing opcode 0x6e at 0x0017

usw...

2voto

JasonPlutext Punkte 14913

Hinweis: Ich arbeite am docx4j-Projekt

Sie müssen den Android-spezifischen Zweig von docx4j verwenden.

Siehe jaxb-can-be-made-to-run-on-android

Ich würde vorschlagen, dass Sie zuerst AndroidDocxToHtml zum Laufen bringen und von dort aus weitermachen.

0voto

Karl Punkte 2961

Antwort bezieht sich auf die IOException "Mark wurde ungültig": Ich verwende den Android-Zweig von docx4j und stoße auf denselben Fehler, wenn ich versuche, eine Vorlagendatei DOCX zu laden. Ich habe die Art und Weise geändert, wie die docx-Datei geladen wird, was mein Problem gelöst hat:

        final LoadFromZipNG loader = new LoadFromZipNG();
        mypackage= (WordprocessingMLPackage)loader.get(is);

Entnommen aus dem DOCX4J-Beispiel: https://github.com/plutext/AndroidDocxToHTML

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X