使用Aspose.cells截图并去除截图中水印_含资源下载链接

1、因

平时将数据生成简单报表,大多数用的都Apache poi,但要是对生成的Excel进行截图保存或者发送邮件使用,这里poi暂时不能实现。
对Excel的sheet 截图 可以用aspose-cells来实现:

	public static void main(String[] args) throws Exception {
		Workbook book = new Workbook("D:\\test\\testChart.xlsx");

		ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
		ImageFormat format = ImageFormat.getJpeg();
		imgOptions.setImageFormat(format);
		
		Worksheet sheet = book.getWorksheets().get(0);
		worksheet.getPageSetup().setPrintArea("A1:N22");

		SheetRender sheetRender = new SheetRender(sheet, imgOptions);
		sheetRender.toImage(0, "D:\\test\\testChart.jpg");
	}

截图效果
截图效果可以看到红框标记处有明显的水印。

2、破

修改了License.class,去掉了截图水印。
这里仅供个人学习使用,商用的话还是要购买人家的License的。

	public static void main(String[] args) throws Exception {
        //验证License
        License.freeTrial();
        
        Workbook book = new Workbook("D:\\test\\testChart.xlsx");
        
        ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
        ImageFormat format = ImageFormat.getJpeg();
        imgOptions.setImageFormat(format);
        
        Worksheet worksheet = book.getWorksheets().get(0);
        worksheet.getPageSetup().setPrintArea("A1:N22");
        
        SheetRender sheetRender = new SheetRender(worksheet, imgOptions);
        sheetRender.toImage(0, "D:\\test\\testChart.jpg");
    }

截图效果
截图效果对比之前是没有水印的。

3、其他

关于aspose.cells的workbook和poi的workbook,可以通过xssfWorkbook的InputStream来构建一个aspose.cells的workbook。
这里是资源里缺少的部分代码,提供参考;

    //将poi xssfWorkbook截图做base64编码
	public static String convertToImageBase64(XSSFWorkbook xssfWorkbook, int sheetNo, String startPoint, String endPoint) {
		//...
		//通过xssfWorkbook的InputStream来构建一个aspose.cells的workbook。
   		Workbook workbook = new Workbook(toByteArrayResource(xssfWorkbook).getInputStream());
   		//...
   	}
   	//
	public static ByteArrayResource toByteArrayResource(XSSFWorkbook workbook) throws IOException {
        //临时缓冲区
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        //创建临时文件
        workbook.write(out);
        byte[] bookByteAry = out.toByteArray();
        InputStream in = new ByteArrayInputStream(bookByteAry);
        return new ByteArrayResource(IOUtils.toByteArray(in));
    }

4、熄灯

资源下载(5积分):aspose-cells-19.3.jar

资源包含去水印版aspose-cells-19.3-crack.jar和原版aspose-cells-19.3-jar,
还有demo使用样例,以及样例要用到的excel,(demo缺失的方法toByteArrayResource见本文【3、其他】)
以及将jar导入本地maven仓库的语句。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章