2017-09-08 13 views
0

私のプロジェクトの1つでは、Apache POIを使用して.docファイルから画像を読み取る必要があります。各行には、テキストデータを横に並べて読み出す必要のある画像(1,2,3など)を含むセルがあります。 Apache POIを使用して.docファイルの全セルを読み取ることができません

は、だから私は

FileInputStream fileInputStream = new FileInputStream(file); 

    POIFSFileSystem poifsFileSystem = new POIFSFileSystem(fileInputStream); 

    HWPFDocument doc = new HWPFDocument(poifsFileSystem); 

    Range range = doc.getRange(); 

    PicturesTable pictureTable = doc.getPicturesTable(); 

    PicturesSource pictures = new PicturesSource(doc); 

    Paragraph tableParagraph = range.getParagraph(0); 

     Table table = range.getTable(tableParagraph); 

      TableRow row = table.getRow(0); 

      TableCell cell1 = row.getCell(0); 
      for (int j = 0; j < cell1.getParagraph(0).numCharacterRuns(); j++) { 

       CharacterRun cr = cell1.getParagraph(0).getCharacterRun(j); 
       if (pictureTable.hasPicture(cr)) { 
        logger.debug("Has picture If--"); 
        Picture picture = pictures.getFor(cr); 
        logger.debug("pictures Description--" + picture.getDescription()); 

       } 
      } 

は、今私は、特定の細胞の画像を読み取ることができています次のコードを試してみましたが、問題は、私は、私はセル手段のすべての画像を読み取ることができないですですテキストとテキストの間のイメージの前にイメージを読むことができますが、テキストが続くイメージを読み取ることができません。例 "image_1 ---何らかのテキスト--- image_2何らかのテキスト---。image_3"この場合、私はimage_3だけを読むことができません。私は何をすればいいのですか。私はimage_3も読むことができます。私はたくさんの検索をしましたが、今まで運がありませんでした。誰かがこれを行う方法を知っていることを願っています。 ありがとうございました。

答えて

1

HWPFDocumentでは、私も問題があります。処理前にWord文書をdocxに変更する機会がある場合は、XWPFドキュメントで使用できる例を以下に示します。

FileInputStream fileInputStream = new FileInputStream(file); 

    XWPFDocument doc = new XWPFDocument(fileInputStream); 
    for (XWPFTable tbl : doc.getTables()) { 
     for (XWPFTableRow row : tbl.getRows()) { 
      for (XWPFTableCell cell : row.getTableCells()) { 
       for (XWPFParagraph para : cell.getParagraphs()) { 
        for (XWPFRun run : para.getRuns()) { 
         for (XWPFPicture pic : run.getEmbeddedPictures()) { 
          System.out.println(pic.getPictureData()); 
         } 

        } 
       } 
      } 
     } 
    } 
関連する問題