2009-07-13 3 views
0

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

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

Поблагодарив вас ...

+0

Документы Word приходят во многих формах. Вы можете уточнить, какой тип документа Word вы хотите прочитать? Word 97/2003 .doc, Word 2007 XML и т. Д. –

+0

Я хочу прочитать комментарий из файлов слов 97/2003/xp и 2007 ... – Garudadwajan

ответ

2

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

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

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.

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

0

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

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

+0

Спасибо большое Брайан ... – Garudadwajan

+0

Прохладный. Это работало? –

+0

Я не пробовал, но расскажу вам об этом ... – Garudadwajan

0

Am также новый к апаче пои. Услышьте, что моя программа работает отлично, эта программа извлекает текстовую форму doc в текст ... Надеюсь, эта программа поможет u до запуска этой программы. U можно установить соответствующие файлы lib в вашем пути к классам.

/* 
* 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

Пожалуйста, поместите свой код в блок кода, прямо сейчас его просто стена текста – TheLQ

Смежные вопросы