【问题标题】:how to read comments in word document from apache poi?如何从 apache poi 读取 word 文档中的注释?
【发布时间】:2011-06-29 20:34:39
【问题描述】:

如何从 microsoft word 文档中读取 word cmets (Annotation)?

如果可能,请提供一些示例代码...

谢谢你...

【问题讨论】:

  • 我想阅读 97/2003/xp 和 2007 word 文件中的评论...

标签: java apache ms-word document


【解决方案1】:

终于找到答案了

这里是代码 sn-p ...

    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。如果您希望使用基于 OpenXML 的文件格式,则需要其他档案 - poi-ooxml-3.5-beta7-20090717.jar 和 poi-dependencies-3.5-beta7-20090717.zip。

感谢 Mark B 的帮助,他确实找到了这个解决方案 ....

【讨论】:

    【解决方案2】:

    获取HWPFDocument 对象(例如,通过在输入流中传递 Word 文档)。

    然后您可以通过getSummaryInformation() 获取摘要,这将通过getSummary() 为您提供SummaryInformation 对象

    【讨论】:

    • 很抱歉,但它不起作用...它返回 null ...实际上我想要的是单词注释( Annotation ),我认为 getSummary() , getComment() 正在返回其他内容。 .. 无论如何谢谢大家...
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      我也是 apache poi 的新手。听说我的程序运行良好,这个程序将单词形式的文档提取为文本...我希望这个程序能在你运行这个程序之前帮助你,你可以在你的类路径中设置相应的 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();
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 2011-07-24
        • 2012-11-10
        • 1970-01-01
        • 1970-01-01
        • 2016-10-02
        相关资源
        最近更新 更多