2016-06-26 6 views
4

나는 MS 워드 테이블에서 이미지를 얻을 수 있지만 모양과 클립 아트를 얻을 수 없습니다. 프로그램 위모양을 (직사각형, 정사각형, 원형, 화살표 등), 자바를 사용하여 MS 워드 파일에서 클립 아트

public static void main(String[] args) throws Exception { 
    // The path to the documents directory. 
    try { 
     String dataDir = "E://test//demo.docx"; 
     generatePicturesAsImages(dataDir); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public static void generatePicturesAsImages(String sourcePath) { 
    try { 
     Document doc = new Document(sourcePath); 
     ImageSaveOptions options = new ImageSaveOptions(SaveFormat.JPEG); 
     options.setJpegQuality(100); 
     options.setResolution(100); 
     // options.setUseHighQualityRendering(true); 
     List<ShapeRenderer> pictures = getAllPictures(doc); 
     if (pictures != null) { 
      for (int i = 0; i < pictures.size(); i++) { 
       ShapeRenderer picture = pictures.get(i); 
       String imageFilePath = sourcePath + "_output_" + i + ".jpeg"; 
       picture.save(imageFilePath, options); 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

private static List<ShapeRenderer> getAllPictures(final Document document) throws Exception { 
    List<ShapeRenderer> images = null; 
    @SuppressWarnings("unchecked") 
    NodeCollection<DrawingML> nodeCollection = document.getChildNodes(NodeType.DRAWING_ML, Boolean.TRUE); 
    if (nodeCollection.getCount() > 0) { 
     images = new ArrayList<ShapeRenderer>(); 
     for (DrawingML drawingML : nodeCollection) { 
      images.add(drawingML.getShapeRenderer()); 
     } 
    } 
    return images; 
} 

그래서 나는 더 추가해야하는지 모양을 얻기 위해 테이블에서 이미지를 받고있다 .. 어떤 도움을 주셔서 감사합니다 내게 제안하십시오!

답변

1

이전 버전의 Aspose.Words를 사용하고 있습니다. 이전 버전의 Aspose.Words를 사용하려면 getAllPictures 메소드에서 Document.getChildNodes를 사용하여 Shape 및 DrawingML 노드 컬렉션을 가져 오십시오.

NodeCollection<DrawingML> drwingmlnodes = document.getChildNodes(NodeType.DRAWING_ML, Boolean.TRUE); 

NodeCollection<Shape> shapenodes = document.getChildNodes(NodeType.SHAPE, Boolean.TRUE); 

DrawingML from our APIs in Aspose.Words 15.2.0을 삭제했습니다. Aspose.Words v16.5.0의 최신 버전을 사용하려면 NodeType.SHAPE 만 사용하십시오.

저는 Aspose as Developer Evangelist와 협력합니다.