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

Springboot——整合Aspose实现table的字段填充与表格复制

文章目录

  • 前言
  • 业务场景
  • 项目版本
  • 功能实现
    • 编码前模板解析
    • 测试代码
      • 定义数据接收类
      • 数据填充
      • 工具处理方法
      • 效果展示
  • 问题记录
    • 导出word格式正常,但是pdf错位

前言

上一篇博客中,主要介绍了常规的几种docx模板的赋值。比如常见的文本填充表格填充富文本填充图片填充超链接等。

虽然基本的操作都能满足大部分的业务需求功能点,但总会有一些很特别的业务需要实现。

业务场景

xxx合同文件中,针对同时存在多个乙方,需要进行填充操作。比如如下的这种模板
在这里插入图片描述
假设此时页面中记录十多个乙方,都需要将其填充至右侧,并能保证外围框能自适应的扩充。

项目版本

  • maven 3.6.3
  • jdk 17
  • Aspose 16.8.0

功能实现

编码前模板解析

需要能按照数据的多少,达到自动的向下复制、填充和渲染。首先能想到的就是表格填充。但这里的表格与普通表格不同。

  • 普通表格
    普通表格有标准的表头和数据行。每次遍历渲染数据行就能完成表格数据的填充。
  • 特殊表格
    就如上所示的表格,他其实是三行不同的数据结构构成一个表格的单元格。

将上面的模板进行拆解,如下所示:
在这里插入图片描述
并将其套入同一个文本框内,再隐藏所有的边框
在这里插入图片描述
在这里插入图片描述
在对应的乙方单元格内,指定定位书签文字填充书签
在这里插入图片描述

测试代码

定义数据接收类

@Data
public class PartB2 {// 乙方单位名private String partBName;// 责任人private String partBUserName;private String partBDate;
}

数据填充

定义需要填充的数据并调用指定的工具类进行填充处理。

import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import enty.PartB2;
import utils.AsposeUtils;
import utils.WordToPdfUtil;import java.io.File;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.UUID;/*** 由于区域块填充复制,三行构成一个cell时,会出现如下报错* Mail merge region 'partyBList' is badly formed. TableStart and TableEnd should be in the same section, same table row or same table cell.* ,将其替换另一种方案,如下*/
public class BlockCopyTest {public static void main(String[] args) throws Exception {// 加载证书 取数水印try {InputStream is = AsposeTest.class.getClassLoader().getResourceAsStream("licenses/license.xml");License asposeLic = new License();asposeLic.setLicense(is);} catch (Exception e) {throw new RuntimeException(e);}// 加载 Word 模板InputStream inWord = WordToPdfUtil.class.getClassLoader().getResourceAsStream("temp/block_12.docx");// 加载模板Document doc = new Document(inWord
http://www.dtcms.com/a/517569.html

相关文章:

  • 产品展示型网站赏析河南网站建设电话
  • 国外免费搭建网站源码企业网站建设策划书 前言
  • 【网络代理相关知识】
  • 美股及墨西哥股票数据接口文档
  • 做电销哪些网站可以找到客户做网站的北京
  • 网站描述修改做h5那个网站好
  • 什么公司时候做网站厦门编程培训机构
  • 建设网站 买了域名还要什么网站权重分为几个等级
  • 操作系统 进程(3)进程调度算法
  • 建筑设计自学网站做一个平台网站要多少钱
  • 专门做单页的网站把网站制作成app
  • 电子商务网站建设实践报告摘要如何做查询网站
  • HX711电子秤模块详解(STM32)
  • 成都高速公路网站建设招标消防工程师证怎么考
  • 白山北京网站建设大连甘井子区教育公共服务平台
  • SpringBoot考勤管理系统
  • 公司网站站群是什么为什么要建设就业指导网站
  • 用cosyvoice批量把生成有声书
  • 三门峡企业网站建设公司全球最大的c2c平台
  • AAAI 2025 | 即插即用,川大Mesorch刷新SOTA,用「介观」Transformer架构终结图像造假
  • 【2025最新】ArcGIS for JS 实现随着时间变化而变化的热力图
  • 滨州市建设局网站手机网站全屏代码
  • 创业先做网站德清淘宝网站建设
  • 数据结构10:树和二叉树
  • 手机网站进不去怎么办自己建网站有什么好处
  • 高端建站什么意思wordpress 识别pc手机版
  • 从零开始:设计你第一款游戏的“法则”
  • 电子商务网站建设与管理的总结wordpress如何开启阿里云cdn
  • 国外网站模板欣赏做ps兼职的网站有哪些
  • 扬中网站制作公司苏州网页设计方法