2009-03-12 3 views
2

Ich habe die Apache HWPF heruntergeladen. Ich möchte es verwenden, um eine doc-Datei zu lesen und den Text in eine einfache Textdatei zu schreiben. Ich kenne die HWPF nicht so gut.Wie Apache HWPF verwenden, um Text und Bilder aus einer DOC-Datei zu extrahieren

Meine sehr einfaches Programm ist hier:

ich jetzt 3 Probleme:

  1. Einige Pakete Fehler haben (sie können nicht Apache hdf finden). Wie kann ich sie reparieren?

  2. Wie kann ich die Methoden von HWDF verwenden, um die Bilder zu finden und zu extrahieren?

  3. Ein Teil meines Programms ist unvollständig und falsch. Also bitte hilf mir, es zu vervollständigen.

Ich muss dieses Programm in 2 Tagen abschließen.

noch einmal ich wiederhole bitte Bitte helfen Sie mir, dies zu vervollständigen.

Danke euch Jungs viel für eure Hilfe !!!

Das ist mein Grundcode:

public class test { 
    public void m1(){ 
    String filesname = "Hello.doc"; 
    POIFSFileSystem fs = null; 
    fs = new POIFSFileSystem(new FileInputStream(filesname); 
    HWPFDocument doc = new HWPFDocument(fs); 
    WordExtractor we = new WordExtractor(doc); 
    String str = we.getText() ; 
    String[] paragraphs = we.getParagraphText(); 
    Picture pic = new Picture(. . .) ; 
    pic.writeImageContent(. . .) ; 
    PicturesTable picTable = new PicturesTable(. . .) ; 
    if (picTable.hasPicture(. . .)){ 
     picTable.extractPicture(..., ...); 
     picTable.getAllPictures() ; 
    } 
} 
+0

Verwandte: http://stackoverflow.com/questions/1870328/how-to-programmaticaly-extract-and-manipulate-images-from-an-office-file – Thilo

Antwort

0

Wenn Sie nur dies tun wollen, und Sie über die Kodierung nicht interessieren, können Sie einfach Antiword verwenden.

$ antiword file.doc> out.txt

0

weiß ich, das lange nach der Tat, aber ich habe Textmining auf Google Code gefunden, genauer und sehr einfach zu bedienen. Es ist jedoch ziemlich aufgegeben Code.

1

wird dies für Sie tun. Es behandelt das Sprechen mit POI, um die HWPF-Sachen zu machen, und präsentiert Ihnen entweder XHTML oder Nur-Text für den Inhalt der Datei. Wenn Sie einen rekursiven Parser registrieren, erhalten Sie auch alle eingebetteten Bilder.

0
//you can use the org.apache.poi.hwpf.extractor.WordExtractor to get the text 
    String fileName = "example.doc"; 
    HWPFDocument wordDoc = new HWPFDocument(new FileInputStream(fileName)); 
    WordExtractor extractor = new WordExtractor(wordDoc); 
    String[] text = extractor.getParagraphText(); 
    int lineCounter = text.length; 
    String articleStr = ""; // This string object use to store text from the word document. 
    for(int index = 0;index < lineCounter;++ index){ 
     String paragraphStr = text[index].replaceAll("\r\n","").replaceAll("\n","").trim(); 
     int paragraphLength = paragraphStr.length(); 
     if(paragraphLength != 0){ 
      articleStr.concat(paragraphStr); 
     } 
    } 
    //you can use the org.apache.poi.hwpf.usermodel.Picture to get the image 
    List<Picture> picturesList = wordDoc.getPicturesTable().getAllPictures(); 
    for(int i = 0;i < picturesList.size();++i){ 
     BufferedImage image = null; 
     Picture pic = picturesList.get(i); 
     image = ImageIO.read(new ByteArrayInputStream(pic.getContent())); 
     if(image != null){ 
      System.out.println("Image["+i+"]"+" ImageWidth:"+image.getWidth()+" ImageHeight:"+image.getHeight()+" Suggest Image Format:"+pic.suggestFileExtension()); 
     } 
    } 
Verwandte Themen