1

MS Word ドキュメント ヘッダー (.doc) を読むと、次の例外が発生しました。

"A property claimed to start before zero, at -512! Resetting it to zero, and hoping for the best"

私はこのライブラリpoi-scratchpad-3.2-final-20081019を使用し、このコードを読み取りに使用します:

import java.io.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class ReadDocFile {
public static void main(String[] args) {
File file = null;
WordExtractor extractor = null ;
try {

   file = new File("c:\\New.doc");
   FileInputStream fis=new FileInputStream(file.getAbsolutePath());
   HWPFDocument document=new HWPFDocument(fis);
   extractor = new WordExtractor(document);
   String [] fileData = extractor.getParagraphText();
   for(int i=0;i<fileData.length;i++){
     if(fileData[i] != null)
       System.out.println(fileData[i]);
   }
}
catch(Exception exep){}
  }
}
4

1 に答える 1

3

このエラーはpoi ファイルが原因です:

protected PropertyNode(int fcStart, int fcEnd, Object buf)
{
    _cpStart = fcStart;
    _cpEnd = fcEnd;
    _buf = buf;

    if(_cpStart < 0) {
        _logger.log(POILogger.WARN, "A property claimed to start before zero, at " + _cpStart + "! Resetting it to zero, and hoping for the best");
      _cpStart = 0;
    }
    //more code

コードでわかるように、_cpStart が 0 より小さい場合、ロガーはこのエラーを作成します。この場合は -512 になります。これは、PropertyNode メソッドが fcStart = -512 で呼び出されていることを意味します。

-512でそれを呼んでいるものについて:

-512 は、org.apache.poi.hwpf.model で行われる計算に由来します。ここで、getStart(x) は 1536 を返し、fcMin は 2048 です。

出典:バグレポート

この警告は、HWPFDocument のインスタンスを作成するときにログに記録され、機能に影響しない既知のバグです (_cpStart が 0 に設定されているため)。

于 2013-07-01T20:56:12.217 に答える