2009-07-13 4 views
0

Wie Word Comments (Annotation) aus Microsoft Word-Dokument zu lesen?Wie Kommentare in Word-Dokument von Apache Poi lesen?

bitte einige Beispiel-Code, wenn möglich zur Verfügung stellen ...

Sie deinnkening ...

+0

Word-Dokumente gibt es in vielen Formen. Können Sie klären, aus welchem ​​Word-Dokument Sie lesen möchten? Word 97/2003 .doc, Word 2007 XML etc. –

+0

Ich möchte einen Kommentar aus 97/2003/xp und 2007 Word-Dateien lesen ... – Garudadwajan

Antwort

2

Schließlich fand ich die Antwort

hier ist der Code-Schnipsel ...

File file = null; 
    FileInputStream fis = null; 
    HWPFDocument document = null; 
    Range commentRange = null; 
    try { 
     file = new File(fileName); 
     fis = new FileInputStream(file); 
     document = new HWPFDocument(fis); 
     commentRange = document.getCommentsRange(); 
     int numComments = commentRange.numParagraphs(); 
     for (int i = 0; i < numComments; i++) { 
      String comments = commentRange.getParagraph(i).text(); 
      comments = comments.replaceAll("\\cM?\r?\n", "").trim(); 
      if (!comments.equals("")) { 
       System.out.println("comment :- " + comments); 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Ich verwende Poi poi-3.5-beta7-20090719.jar, poi-scratchpad-3.5-beta7-20090717.jar. Die anderen Archive - poi-ooxml-3.5-beta7-20090717.jar und poi-dependencies-3.5-beta7-20090717.zip - werden benötigt, wenn Sie die OpenXML-basierten Dateiformate bearbeiten wollen.

Ich schätze die Hilfe von Mark B, die tatsächlich diese Lösung gefunden ....

0

Holen Sie sich das HWPFDocument Objekt (durch ein Word-Dokument in einem Eingangsstrom vorbei, sagen).

Dann können Sie die Zusammenfassung über getSummaryInformation() zu bekommen, und das wird Ihnen ein SummaryInformation Objekt über getSummary()

+0

Vielen Dank Brian ... – Garudadwajan

+0

Cool. Hat es funktioniert? –

+0

Ich habe es nicht versucht, aber werde Sie darüber informieren ... – Garudadwajan

0

Am auch neue erfüllen Apache Poi. Hören Sie, ist mein Programm es funktioniert gut dieses Programm extrahieren Wort Form doc zu Text ... Ich hoffe, dass dieses Programm Ihnen helfen wird, bevor Sie dieses Programm ausführen können Sie entsprechende lib-Dateien in Ihrem Klassenpfad festlegen.

/* 
* FileExtract.java 
* 
* Created on April 12, 2010, 9:46 AM 
* 
* To change this template, choose Tools | Template Manager 
* and open the template in the editor. 
*/ 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import javax.swing.text.BadLocationException; 
import javax.swing.text.DefaultStyledDocument; 
import javax.swing.text.rtf.RTFEditorKit; 
import java.io.*; 
import org.apache.poi.POIOLE2TextExtractor.*; 
import org.apache.poi.POIOLE2TextExtractor; 
import org.apache.poi.POITextExtractor; 
import org.apache.poi.extractor.ExtractorFactory; 
import org.apache.poi.hdgf.extractor.VisioTextExtractor; 
import org.apache.poi.hslf.extractor.PowerPointExtractor; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.hwpf.extractor.WordExtractor; 
import org.apache.poi.poifs.filesystem.POIFSFileSystem; 
import org.apache.poi.ss.extractor.ExcelExtractor; 
import org.apache.poi.xwpf.extractor.XWPFWordExtractor; 
import javax.swing.text.Document; 
/** 
* 
* @author ChandraMouil V 
*/ 
public class RtfDocTextExtract { 
    /** Creates a new instance of FileExtract */ 
    static String filePath; 
    static String rtfFile; 
    static FileInputStream fis; 
    static int x=0; 
    public RtfDocTextExtract() { 
    } 
    //This function for .DOC File 
    public static void meth(String filePath) { 
     try { 
      if(x!=0){ 
       fis = new FileInputStream("D:/DummyRichTextFormat.doc"); 
       POIFSFileSystem fileSystem = new POIFSFileSystem(fis); 
       WordExtractor oleTextExtractor = (WordExtractor) ExtractorFactory.createExtractor(fileSystem); 
       String[] paragraphText = oleTextExtractor.getParagraphText(); 
       FileWriter fw = new FileWriter("E:/resume-template.txt"); 
       for (String paragraph : paragraphText) { 
        fw.write(paragraph); 
       } 
       fw.flush(); 
      } 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 
+0

Bitte setzen Sie Ihren Code in den Code Block, jetzt ist es nur eine Wand aus Text – TheLQ