当前位置: 首页 > news >正文

网站建设基础实训报告网站策划书基本项目

网站建设基础实训报告,网站策划书基本项目,网页游戏排行榜电脑,九江浔阳网站建设java itext5 生成PDF并填充数据导出 依赖**文本勾选框****页眉**&#xff0c;**页脚****图片**实际图 主要功能有文本勾选框&#xff0c;页眉&#xff0c;页脚&#xff0c;图片等功能。肯定没有专业软件画的好看&#xff0c;只是一点儿方法。仅供参考。 依赖 <!--pdf-->&…

java itext5 生成PDF并填充数据导出

  • 依赖
  • **文本勾选框**
  • **页眉**,**页脚**
  • **图片**
  • 实际图

主要功能有文本勾选框页眉页脚图片等功能。肯定没有专业软件画的好看,只是一点儿方法。仅供参考。

依赖

        <!--pdf--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

文本勾选框

生成勾选框的图片,将图片插入到文本前面

private static Image checkBoxPng;static {ClassPathResource classPathResource = new ClassPathResource(CHECK_BOX_PATH);try {byte[] byteArray = FileCopyUtils.copyToByteArray(classPathResource.getInputStream());checkBoxPng = Image.getInstance(byteArray);} catch (IOException | BadElementException e1) {e1.printStackTrace();}}-------------------------------------------------------------------------final Paragraph paragraph = new Paragraph();if (checkBox != null && checkBox) {try {
//				final Image png = Image.getInstance(CHECK_BOX_PATH);// y轴 向下偏移5 保证大致上都是水平的final Chunk chunk = new Chunk(checkBoxPng, 0, -5);paragraph.add(chunk);} catch (Exception e) {throw new BusinessException(e.getMessage());}}paragraph.add(new Phrase(value, font));

页眉页脚

itext5没有页眉页脚设置的api,所以用的是定位的方式;
new Document();时预留出页眉和页脚数据所需要的空间大小
pdfPTable.writeSelectedRows(); 定位的方式把表格定位到对应的位置上即可

@Slf4j
@Component
public abstract class HeaderFooterEventHelper extends PdfPageEventHelper {/*** 页眉*/protected final List<CustomExportTemplateModuleDTO> headerList;/*** 页脚*/protected final List<CustomExportTemplateModuleDTO> footerList;public HeaderFooterEventHelper(List<CustomExportTemplateModuleDTO> headerList,List<CustomExportTemplateModuleDTO> footerList) {this.headerList = headerList;this.footerList = footerList;}/*** 一页加载完成触发,写入页眉和页脚*/@Overridepublic abstract void onEndPage(PdfWriter writer, Document document);
}
		//移除边距 方便设置页眉和页脚  定制页眉页脚Document document = new Document(PageSize.A4,-30 + ObjectUtils.defaultIfNull(module.getLeftMargin(), 0),-30 + ObjectUtils.defaultIfNull(module.getRightMargin(), 0),// 页眉高度 + 间隙高度  /页脚高度 - 间隙高度 (页面底部有一部分真空区域)headerSize + GAP_SIZE + ObjectUtils.defaultIfNull(module.getUpMargin(), 0),footerSize + GAP_SIZE + ObjectUtils.defaultIfNull(module.getDownMargin(), 0));ByteArrayOutputStream baos = new ByteArrayOutputStream();final PdfWriter writer = PdfWriter.getInstance(document, baos);// 初始化 页眉、页脚数据体writer.setPageEvent(new HeaderFooterEventHelper(headerDTOS, footerDTOS) {@Overridepublic void onEndPage(PdfWriter writer, Document document) {final ICustomExportTemplateService customExportTemplateService = SpringContextUtil.getBean(ICustomExportTemplateService.class);if (customExportTemplateService != null) {customExportTemplateService.setPdfData(this.headerList, writer, ZERO);customExportTemplateService.setPdfData(this.footerList, writer, ONE);}}});-------------------------------------------------------------------
@Overridepublic void setPdfData(List<CustomExportTemplateModuleDTO> moduleDTOS, PdfWriter writer, Integer type) {float size = 0;final float sumSize = getSumSize(moduleDTOS);for (CustomExportTemplateModuleDTO item : moduleDTOS) {PdfPTable pdfPTable; // 创建的表格pdfPTable.setTotalWidth(PageSize.A4.getWidth());pdfPTable.setWidthPercentage(WIDTH_PERCENT);if (Objects.equals(type, ZERO)) {// 页眉 基点为 左下角0点 高度为 A4全高 - 使用高度pdfPTable.writeSelectedRows(0, -1, ZERO,PageSize.A4.getHeight() - size, writer.getDirectContent());} else if (Objects.equals(type, ONE)) {// 页脚 基点为 左下角0点 高度为 列表使用总高度 - 使用高度pdfPTable.writeSelectedRows(0, -1, ZERO,sumSize - size, writer.getDirectContent());}if (item.getLabel().equals(2)) {size += BigDecimal.valueOf(item.getData().size()).multiply(BigDecimal.valueOf(CELL_SIZE)).intValue();} else {// 默认每行高度为 25size += CELL_SIZE;}}}

图片

PdfPCell cell = new PdfPCell();
// 我这里是根据文件服务器上的图片链接进行获取的。
cell.setImage(Image.getInstance(MinioUtil.getUrlName(imageUrl)));

实际图

http://www.yayakq.cn/news/794334/

相关文章:

  • 有个域名怎样做网站wordpress移动导航菜单
  • 服装定制网站模板wordpress表单支付插件下载
  • 做网站点击率赚钱菏泽网站建设电话
  • 数学网站怎么做app推广平台排行榜
  • 网页设计与自学教程如何优化啊里网站排名
  • 关于建设网站的申请报告现在做网络优化有前途吗
  • 钦州做网站的公司17zwd一起做网站官网
  • 网站后台管理系统代码网站搭建好之后提示网页走丢了
  • 耳机商城网站开发做网站先做ue
  • 大连微网站制作网络营销类网站
  • 网站站内优化案例末备案网站如何做cdn
  • 深圳自适应网站开发网站开发平台建设
  • 做网站接电话一般要会什么上海网站建设开发电话
  • 医药建设网站翻译网站模板
  • 网站主页图片设计济南市病疾情最新信息
  • 手机CPA网站建设源码修改龙岩网站设计 都找推商吧系统
  • 网站制作公司 深圳万商云集(成都)科技股份有限公司
  • 网站建设与运营总结前端网站开发框架
  • 商务网站开发代码亚马逊跨境电商
  • 网站建设路由器怎么设置深圳宝安美容医院网站建设
  • 福州网站建设哪家专业网站搭建公司排名
  • 网站设计文案 范例最专业的营销网站建设公司
  • 用asp.net做网站新会住房建设局网站
  • 绵阳网站建设联系电话开车小视频素材
  • wordpress全站音乐做国际贸易的网站
  • 网站流量的转换率一般是多少慕课网站开发
  • 慧聚创新网站建设邹平县建设局官方网站
  • 子夜免费观看seo软件视频教程
  • 做设计一般用的素材网站是什么意思网站建设的成本
  • 做外贸企业网站传奇网站装备动态图怎么做