当前位置: 首页>>代码示例>>Java>>正文


Java ClientAnchor.setAnchorType方法代码示例

本文整理汇总了Java中org.apache.poi.ss.usermodel.ClientAnchor.setAnchorType方法的典型用法代码示例。如果您正苦于以下问题:Java ClientAnchor.setAnchorType方法的具体用法?Java ClientAnchor.setAnchorType怎么用?Java ClientAnchor.setAnchorType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.poi.ss.usermodel.ClientAnchor的用法示例。


在下文中一共展示了ClientAnchor.setAnchorType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createDefaultLogo

import org.apache.poi.ss.usermodel.ClientAnchor; //导入方法依赖的package包/类
/**
 * @작성자 : KYJ
 * @작성일 : 2016. 9. 9. 
 * @param sheet
 * @throws Exception
 */
final static void createDefaultLogo(Sheet sheet) throws Exception {
	Workbook workbook = sheet.getWorkbook();
	byte[] defaultLogoImage = getDefaultLogoImage();
	if(defaultLogoImage == null)
		return;
	int pictureIdx = workbook.addPicture(defaultLogoImage, Workbook.PICTURE_TYPE_PNG);

	CreationHelper creationHelper = workbook.getCreationHelper();
	ClientAnchor anchor = creationHelper.createClientAnchor(); //new XSSFClientAnchor();
	//			anchor.setAnchorType(AnchorType.MOVE_DONT_RESIZE);
	Drawing createDrawingPatriarch = sheet.createDrawingPatriarch();
	anchor.setDx1(0);
	anchor.setCol1(0);
	anchor.setRow1(0);

	//#1 테이블 셀의 너비에 의존적이지않게 사이즈조절.
	anchor.setAnchorType(AnchorType.MOVE_DONT_RESIZE);
	Picture createPicture = createDrawingPatriarch.createPicture(anchor, pictureIdx);
	//#2 테이블 셀의 너비에 의존적이지않게 사이즈조절.
	createPicture.resize();
}
 
开发者ID:callakrsos,项目名称:Gargoyle,代码行数:28,代码来源:FxExcelUtil.java

示例2: setImage

import org.apache.poi.ss.usermodel.ClientAnchor; //导入方法依赖的package包/类
/**
 * セルに対し画像を設定します。
 * @param c セル。
 * @param value 値。
 * @param p セル位置情報。
 */
private void setImage(final Cell c, final Object value, final CellPosition p) {
	ImageData img = (ImageData) value;
	int cidx = c.getColumnIndex();
	int ridx = c.getRowIndex();
	ClientAnchor anchor = new XSSFClientAnchor();
	anchor.setCol1(cidx);
	anchor.setCol2(cidx + p.getColumns());
	anchor.setRow1(ridx);
	anchor.setRow2(ridx + p.getRows());
	anchor.setDx1(XSSFShape.EMU_PER_PIXEL * p.getDx1());
	anchor.setDy1(XSSFShape.EMU_PER_PIXEL * p.getDy1());
	anchor.setDx2(XSSFShape.EMU_PER_PIXEL * p.getDx2());
	anchor.setDy2(XSSFShape.EMU_PER_PIXEL * p.getDy2());
	anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE);
	int imgtype = XSSFWorkbook.PICTURE_TYPE_PNG;
	if (ImageData.CONTENT_TYPE_JPEG.equals(img.getContentType())) {
		imgtype = XSSFWorkbook.PICTURE_TYPE_JPEG;
	} else if (ImageData.CONTENT_TYPE_GIF.equals(img.getContentType())) {
		imgtype = XSSFWorkbook.PICTURE_TYPE_GIF;
	}
	int pidx = this.workbook.addPicture(img.getContents(), imgtype);
	Picture pic = this.drawing.createPicture(anchor, pidx);
	this.resizeImage(c, pic, p);
}
 
开发者ID:takayanagi2087,项目名称:dataforms,代码行数:31,代码来源:ExcelReport.java

示例3: extractPicturePortion

import org.apache.poi.ss.usermodel.ClientAnchor; //导入方法依赖的package包/类
/**
 * 抽象出图片生成业务代码
 * 
 * @throws IOException
 */
private void extractPicturePortion(String svgString, XSSFWorkbook wb,
		XSSFSheet sheet, int startCol, int endCol, int startRow, int endRow)
		throws IOException {
	// 图片
	if (org.apache.commons.lang3.StringUtils.isNotBlank(svgString)) {
		byte[] safeDataBytes = new BASE64Decoder().decodeBuffer(svgString);
		int pictureIdx = wb.addPicture(safeDataBytes,
				Workbook.PICTURE_TYPE_JPEG);
		CreationHelper helper = wb.getCreationHelper();
		// Create the drawing patriarch. This is the top level container for
		// all shapes.
		Drawing drawing = sheet.createDrawingPatriarch();
		// add a picture shape
		ClientAnchor anchor = helper.createClientAnchor();
		// set top-left corner of the picture,
		// subsequent call of Picture#resize() will operate relative to it
		anchor.setCol1(startCol);
		anchor.setCol2(endCol);
		anchor.setRow1(startRow);
		anchor.setRow2(endRow);
		anchor.setDx1(0);
		anchor.setDy1(0);
		anchor.setDx2(0);
		anchor.setDy2(0);
		anchor.setAnchorType(ClientAnchor.MOVE_DONT_RESIZE);
		Picture pict = drawing.createPicture(anchor, pictureIdx);
		pict.resize(1);
	}
}
 
开发者ID:gp15237125756,项目名称:PoiExcelExport,代码行数:35,代码来源:ExcelExportService.java

示例4: processCellImage

import org.apache.poi.ss.usermodel.ClientAnchor; //导入方法依赖的package包/类
/**
 * <p>
 * Process a CellImage from the images list and place the image on the sheet.
 * </p><p>
 * This involves changing the row height as necesssary and determining the column spread of the image.
 * </p>
 * @param cellImage
 * The image to be placed on the sheet.
 */
private void processCellImage( HandlerState state, Drawing drawing, CellImage cellImage ) {
	Coordinate location = cellImage.location;
	
	Cell cell = state.currentSheet.getRow( location.getRow() ).getCell( location.getCol() );

	IImageContent image = cellImage.image;		
	
	StyleManagerUtils smu = state.getSmu();
	float ptHeight = cell.getRow().getHeightInPoints();
	if( image.getHeight() != null ) {
		ptHeight = smu.fontSizeInPoints( image.getHeight().toString() );
	}

	// Get image width
	int endCol = cell.getColumnIndex();
       double lastColWidth = ClientAnchorConversions.widthUnits2Millimetres( (short)state.currentSheet.getColumnWidth( endCol ) )
       		+ 2.0;
       int dx = smu.anchorDxFromMM( lastColWidth, lastColWidth );
       double mmWidth = 0.0;
       if( smu.isAbsolute(image.getWidth())) {
           mmWidth = image.getWidth().convertTo(DimensionType.UNITS_MM);
       } else if(smu.isPixels(image.getWidth())) {
           mmWidth = ClientAnchorConversions.pixels2Millimetres( image.getWidth().getMeasure() );
       }
	// Allow image to span multiple columns
	CellRangeAddress mergedRegion = getMergedRegionBegunBy( state.currentSheet, location.getRow(), location.getCol() );
	if( (cellImage.spanColumns) || ( mergedRegion != null ) ) {
        log.debug( "Image size: ", image.getWidth(), " translates as mmWidth = ", mmWidth );
        if( mmWidth > 0) {
            double mmAccumulatedWidth = 0;
            int endColLimit = cellImage.spanColumns ? 256 : mergedRegion.getLastColumn();
            for( endCol = cell.getColumnIndex(); mmAccumulatedWidth < mmWidth && endCol < endColLimit; ++ endCol ) {
                lastColWidth = ClientAnchorConversions.widthUnits2Millimetres( (short)state.currentSheet.getColumnWidth( endCol ) )
                		+ 2.0;
                mmAccumulatedWidth += lastColWidth;
                log.debug( "lastColWidth = ", lastColWidth, "; mmAccumulatedWidth = ", mmAccumulatedWidth);
            }
            if( mmAccumulatedWidth > mmWidth ) {
                mmAccumulatedWidth -= lastColWidth;
                --endCol;
                double mmShort = mmWidth - mmAccumulatedWidth;
                dx = smu.anchorDxFromMM( mmShort, lastColWidth );
            }
        }
	} else {
		float widthRatio = (float)(mmWidth / lastColWidth);
		ptHeight = ptHeight / widthRatio;
	}

	int rowsSpanned = state.findRowsSpanned( cell.getRowIndex(), cell.getColumnIndex() );
	float neededRowHeightPoints = ptHeight;
	
	for( int i = 0; i < rowsSpanned; ++i ) {
		int rowIndex = cell.getRowIndex() + 1 + i;
		neededRowHeightPoints -= state.currentSheet.getRow(rowIndex).getHeightInPoints();
	}
	
	if( neededRowHeightPoints > cell.getRow().getHeightInPoints()) {
		cell.getRow().setHeightInPoints( neededRowHeightPoints );
	}
	
	// ClientAnchor anchor = wb.getCreationHelper().createClientAnchor();
	ClientAnchor anchor = state.getWb().getCreationHelper().createClientAnchor();
       anchor.setCol1(cell.getColumnIndex());
       anchor.setRow1(cell.getRowIndex());
       anchor.setCol2(endCol);
       anchor.setRow2(cell.getRowIndex() + rowsSpanned);
       anchor.setDx2(dx);
       anchor.setDy2( smu.anchorDyFromPoints( ptHeight, cell.getRow().getHeightInPoints() ) );
       anchor.setAnchorType(ClientAnchor.MOVE_DONT_RESIZE);
    drawing.createPicture(anchor, cellImage.imageIdx);
}
 
开发者ID:eclipse,项目名称:birt,代码行数:82,代码来源:PageHandler.java


注:本文中的org.apache.poi.ss.usermodel.ClientAnchor.setAnchorType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。