org.apache.poi.xssf.usermodel.XSSFPicture.getPreferredSize()方法的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(475)

本文整理了Java中org.apache.poi.xssf.usermodel.XSSFPicture.getPreferredSize()方法的一些代码示例,展示了XSSFPicture.getPreferredSize()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XSSFPicture.getPreferredSize()方法的具体详情如下:
包路径:org.apache.poi.xssf.usermodel.XSSFPicture
类名称:XSSFPicture
方法名:getPreferredSize

XSSFPicture.getPreferredSize介绍

[英]Calculate the preferred size for this picture.
[中]计算此图片的首选大小。

代码示例

代码示例来源:origin: org.apache.poi/poi-ooxml

/**
 * Calculate the preferred size for this picture.
 *
 * @param scale the amount by which image dimensions are multiplied relative to the original size.
 * @return XSSFClientAnchor with the preferred size for this image
 */
public XSSFClientAnchor getPreferredSize(double scale){
  return getPreferredSize(scale, scale);
}

代码示例来源:origin: org.apache.poi/poi-ooxml

/**
 * Calculate the preferred size for this picture.
 *
 * @return XSSFClientAnchor with the preferred size for this image
 */
public XSSFClientAnchor getPreferredSize(){
  return getPreferredSize(1);
}

代码示例来源:origin: org.apache.poi/poi-ooxml

@Override
public XSSFClientAnchor getPreferredSize(double scaleX, double scaleY) {
  return _picture.getPreferredSize(scaleX, scaleY);
}

代码示例来源:origin: looly/hutool

/**
 * 获取XLSX工作簿指定sheet中图片列表
 * 
 * @param workbook 工作簿{@link Workbook}
 * @param sheetIndex sheet的索引
 * @return 图片映射,键格式:行_列,值:{@link PictureData}
 */
private static Map<String, PictureData> getPicMapXlsx(XSSFWorkbook workbook, int sheetIndex) {
  final Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  final XSSFSheet sheet = workbook.getSheetAt(sheetIndex);
  XSSFDrawing drawing;
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      drawing = (XSSFDrawing) dr;
      final List<XSSFShape> shapes = drawing.getShapes();
      XSSFPicture pic;
      CTMarker ctMarker;
      for (XSSFShape shape : shapes) {
        pic = (XSSFPicture) shape;
        ctMarker = pic.getPreferredSize().getFrom();
        sheetIndexPicMap.put(StrUtil.format("{}_{}", ctMarker.getRow(), ctMarker.getCol()), pic.getPictureData());
      }
    }
  }
  return sheetIndexPicMap;
}
// -------------------------------------------------------------------------------------------------------------- Private method end

代码示例来源:origin: looly/hutool

/**
 * 获取XLSX工作簿指定sheet中图片列表
 * 
 * @param workbook 工作簿{@link Workbook}
 * @param sheetIndex sheet的索引
 * @return 图片映射,键格式:行_列,值:{@link PictureData}
 */
private static Map<String, PictureData> getPicMapXlsx(XSSFWorkbook workbook, int sheetIndex) {
  final Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  final XSSFSheet sheet = workbook.getSheetAt(sheetIndex);
  XSSFDrawing drawing;
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      drawing = (XSSFDrawing) dr;
      final List<XSSFShape> shapes = drawing.getShapes();
      XSSFPicture pic;
      CTMarker ctMarker;
      for (XSSFShape shape : shapes) {
        pic = (XSSFPicture) shape;
        ctMarker = pic.getPreferredSize().getFrom();
        sheetIndexPicMap.put(StrUtil.format("{}_{}", ctMarker.getRow(), ctMarker.getCol()), pic.getPictureData());
      }
    }
  }
  return sheetIndexPicMap;
}
// -------------------------------------------------------------------------------------------------------------- Private method end

代码示例来源:origin: org.apache.poi/poi-ooxml

XSSFClientAnchor pref = getPreferredSize(scaleX,scaleY);
if (anchor == null || pref == null) {
  logger.log(POILogger.WARN, "picture is not anchored via client anchor - ignoring resize call");

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi

/**
 * Calculate the preferred size for this picture.
 *
 * @param scale the amount by which image dimensions are multiplied relative to the original size.
 * @return XSSFClientAnchor with the preferred size for this image
 */
public XSSFClientAnchor getPreferredSize(double scale){
  return getPreferredSize(scale, scale);
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi

@Override
public XSSFClientAnchor getPreferredSize(double scaleX, double scaleY) {
  return _picture.getPreferredSize(scaleX, scaleY);
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi

/**
 * Calculate the preferred size for this picture.
 *
 * @return XSSFClientAnchor with the preferred size for this image
 */
public XSSFClientAnchor getPreferredSize(){
  return getPreferredSize(1);
}

代码示例来源:origin: org.openl.rules/org.openl.lib.poi.dev

/**
 * Calculate the preferred size for this picture.
 *
 * @return XSSFClientAnchor with the preferred size for this image
 */
public XSSFClientAnchor getPreferredSize(){
  return getPreferredSize(1);
}

代码示例来源:origin: stackoverflow.com

XSSFSheet sheet = workBook.getSheetAt(0);
   XSSFDrawing drawing = sheet.createDrawingPatriarch(); // I know it is ugly, actually you get the actual instance here
   for (XSSFShape shape : drawing.getShapes()) {
     if (shape instanceof XSSFPicture) {
       XSSFPicture picture = (XSSFPicture) shape;
       XSSFPictureData xssfPictureData = picture.getPictureData();
       ClientAnchor anchor = picture.getPreferredSize();
       int row1 = anchor.getRow1();
       int row2 = anchor.getRow2();
       int col1 = anchor.getCol1();
       int col2 = anchor.getCol2();
       System.out.println("Row1: " + row1 + " Row2: " + row2);
       System.out.println("Column1: " + col1 + " Column2: " + col2);
       // Saving the file
       String ext = xssfPictureData.suggestFileExtension();                
       byte[] data = xssfPictureData.getData();
       String filePath = "C:\\..\\Images\\" + xssfPictureData.getPackagePart().getPartName();
       try (FileOutputStream os = new FileOutputStream(filePath)) {
         os.write(data);
         os.flush();         
       }
     }
   }

代码示例来源:origin: zhangdaiscott/jeasypoi

/**
 * 获取Excel2007图片
 * 
 * @param sheet
 *            当前sheet对象
 * @param workbook
 *            工作簿对象
 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
 */
public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook) {
  Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      XSSFDrawing drawing = (XSSFDrawing) dr;
      List<XSSFShape> shapes = drawing.getShapes();
      for (XSSFShape shape : shapes) {
        XSSFPicture pic = (XSSFPicture) shape;
        XSSFClientAnchor anchor = pic.getPreferredSize();
        CTMarker ctMarker = anchor.getFrom();
        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
        sheetIndexPicMap.put(picIndex, pic.getPictureData());
      }
    }
  }
  return sheetIndexPicMap;
}

代码示例来源:origin: xiaolanglang/easypoi

/**
 * 获取Excel2007图片
 * 
 * @param sheet
 *            当前sheet对象
 * @param workbook
 *            工作簿对象
 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
 */
public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook) {
  Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      XSSFDrawing drawing = (XSSFDrawing) dr;
      List<XSSFShape> shapes = drawing.getShapes();
      for (XSSFShape shape : shapes) {
        XSSFPicture pic = (XSSFPicture) shape;
        XSSFClientAnchor anchor = pic.getPreferredSize();
        CTMarker ctMarker = anchor.getFrom();
        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
        sheetIndexPicMap.put(picIndex, pic.getPictureData());
      }
    }
  }
  return sheetIndexPicMap;
}

代码示例来源:origin: org.jeecg/easypoi-base

/**
 * 获取Excel2007图片
 * 
 * @param sheet
 *            当前sheet对象
 * @param workbook
 *            工作簿对象
 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
 */
public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet,
                             XSSFWorkbook workbook) {
  Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      XSSFDrawing drawing = (XSSFDrawing) dr;
      List<XSSFShape> shapes = drawing.getShapes();
      for (XSSFShape shape : shapes) {
        XSSFPicture pic = (XSSFPicture) shape;
        XSSFClientAnchor anchor = pic.getPreferredSize();
        CTMarker ctMarker = anchor.getFrom();
        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
        sheetIndexPicMap.put(picIndex, pic.getPictureData());
      }
    }
  }
  return sheetIndexPicMap;
}

代码示例来源:origin: cn.afterturn/easypoi-base

/**
 * 获取Excel2007图片
 *
 * @param sheet
 *            当前sheet对象
 * @param workbook
 *            工作簿对象
 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
 */
public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet,
                             XSSFWorkbook workbook) {
  Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      XSSFDrawing drawing = (XSSFDrawing) dr;
      List<XSSFShape> shapes = drawing.getShapes();
      for (XSSFShape shape : shapes) {
        if (shape instanceof XSSFPicture) {
          XSSFPicture pic = (XSSFPicture) shape;
          XSSFClientAnchor anchor = pic.getPreferredSize();
          CTMarker ctMarker = anchor.getFrom();
          String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
          sheetIndexPicMap.put(picIndex, pic.getPictureData());
        }
      }
    }
  }
  return sheetIndexPicMap;
}

代码示例来源:origin: cn.hutool/hutool-all

/**
 * 获取XLSX工作簿指定sheet中图片列表
 * 
 * @param workbook 工作簿{@link Workbook}
 * @param sheetIndex sheet的索引
 * @return 图片映射,键格式:行_列,值:{@link PictureData}
 */
private static Map<String, PictureData> getPicMapXlsx(XSSFWorkbook workbook, int sheetIndex) {
  final Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
  final XSSFSheet sheet = workbook.getSheetAt(sheetIndex);
  XSSFDrawing drawing;
  for (POIXMLDocumentPart dr : sheet.getRelations()) {
    if (dr instanceof XSSFDrawing) {
      drawing = (XSSFDrawing) dr;
      final List<XSSFShape> shapes = drawing.getShapes();
      XSSFPicture pic;
      CTMarker ctMarker;
      for (XSSFShape shape : shapes) {
        pic = (XSSFPicture) shape;
        ctMarker = pic.getPreferredSize().getFrom();
        sheetIndexPicMap.put(StrUtil.format("{}_{}", ctMarker.getRow(), ctMarker.getCol()), pic.getPictureData());
      }
    }
  }
  return sheetIndexPicMap;
}
// -------------------------------------------------------------------------------------------------------------- Private method end

代码示例来源:origin: org.openl.rules/org.openl.lib.poi.dev

/**
 * Reset the image to the original size.
 * <p>
 * Please note, that this method works correctly only for workbooks
 * with the default font size (Calibri 11pt for .xlsx).
 * If the default font is changed the resized image can be streched vertically or horizontally.
 * </p>
 *
 * @param scale the amount by which image dimensions are multiplied relative to the original size.
 * <code>resize(1.0)</code> sets the original size, <code>resize(0.5)</code> resize to 50% of the original,
 * <code>resize(2.0)</code> resizes to 200% of the original.
 */
public void resize(double scale){
  XSSFClientAnchor anchor = (XSSFClientAnchor)getAnchor();
  XSSFClientAnchor pref = getPreferredSize(scale);
  int row2 = anchor.getRow1() + (pref.getRow2() - pref.getRow1());
  int col2 = anchor.getCol1() + (pref.getCol2() - pref.getCol1());
  anchor.setCol2(col2);
  anchor.setDx1(0);
  anchor.setDx2(pref.getDx2());
  anchor.setRow2(row2);
  anchor.setDy1(0);
  anchor.setDy2(pref.getDy2());
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi

XSSFClientAnchor pref = getPreferredSize(scaleX,scaleY);
if (anchor == null || pref == null) {
  logger.log(POILogger.WARN, "picture is not anchored via client anchor - ignoring resize call");

相关文章