package com.estate.expert.admin.stat.report.render; import com.deepoove.poi.data.PictureRenderData; import com.deepoove.poi.data.Pictures; import com.deepoove.poi.policy.PictureRenderPolicy; import com.estate.expert.admin.service.UserFileService; /** * 成都衡泰报告图片渲染策略 */ public class ChengduHengtaiPictureRenderPolicy extends PictureRenderPolicy { private static final int PICTURE_WIDTH = 265; private static final int PICTURE_HEIGHT = 204; private final UserFileService userFileService; public ChengduHengtaiPictureRenderPolicy(UserFileService userFileService) { this.userFileService = userFileService; } @Override public PictureRenderData cast(Object source) throws Exception { var file = userFileService.get((Integer) source); if (file == null) { return null; } var resource = userFileService.resolveResource(file); if (resource == null) { return null; } var data = Pictures.ofStream(resource.getInputStream()) .size(PICTURE_WIDTH, PICTURE_HEIGHT) .create(); return super.cast(data); } }