Garudadwajan
Garudadwajan

Reputation: 689

how to read comments in word document from apache poi?

How to Read word comments (Annotation) from microsoft word document ?

please provide some example code if possible ...

Thanking you ...

Upvotes: 2

Views: 5121

Answers (4)

Mouli
Mouli

Reputation: 129

Am also new to apache poi. Hear is my program its working fine this program extract word form doc to text...I hope this program will help u before u run this program u can set corresponding lib files in your classpath.

/*
 * 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();
        }
    }
}

Upvotes: -1

vani
vani

Reputation: 69

Please refer the following link,it may fulfill yr requirements...

http://bihag.wordpress.com/2009/11/04/how-to-read-comments-from-word-with-poi-jav/#comment-13

Upvotes: 0

Garudadwajan
Garudadwajan

Reputation: 689

Finally, I found the answer

here is the code snippet ...

    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();
    }

I am using Poi poi-3.5-beta7-20090719.jar, poi-scratchpad-3.5-beta7-20090717.jar. The other archives - poi-ooxml-3.5-beta7-20090717.jar and poi-dependencies-3.5-beta7-20090717.zip - will be needed if you are hoping to work on the OpenXML based file formats.

I appreciate the help of Mark B who actually found this solution ....

Upvotes: 3

Brian Agnew
Brian Agnew

Reputation: 272337

Get the HWPFDocument object (by passing a Word document in an input stream, say).

Then you can get the summary via getSummaryInformation(), and that will give you a SummaryInformation object via getSummary()

Upvotes: 0

Related Questions