Как читать комментарии в текстовом документе из Apache Poi? - PullRequest
0 голосов
/ 13 июля 2009

Как читать комментарии к словам (аннотации) из документа Microsoft Word?

Пожалуйста, предоставьте пример кода, если это возможно ...

Благодарю вас ...

Ответы [ 4 ]

3 голосов
/ 24 июля 2009

Наконец-то я нашел ответ

вот фрагмент кода ...

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

Я использую Poi poi-3.5-beta7-20090719.jar, poi-scratchpad-3.5-beta7-20090717.jar. Другие архивы - poi-ooxml-3.5-beta7-20090717.jar и poi-dependencies-3.5-beta7-20090717.zip - понадобятся, если вы собираетесь работать с форматами файлов на основе OpenXML.

Я ценю помощь Марка Б, который действительно нашел это решение ...

0 голосов
/ 04 сентября 2010

Я также новичок в apache poi. Слушайте, моя программа работает нормально, эта программа извлекает текстовую форму из документа в текст ... Я надеюсь, что эта программа поможет вам, прежде чем вы запустите эту программу и сможете установить соответствующие файлы lib в вашем 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();
        }
    }
}
0 голосов
/ 17 мая 2010

Пожалуйста, обратитесь по следующей ссылке, она может соответствовать вашим требованиям ...

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

0 голосов
/ 13 июля 2009

Получить объект HWPFDocument (например, передав документ Word во входной поток).

Затем вы можете получить сводку через getSummaryInformation () , и это даст вам SummaryInformation объект через getSummary()

...