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

Java生成Word->PDF->图片:基于poi-tl 进行word模板渲染

文章目录

  • 引言
  • I Java生成Word、PDF、图片文档
    • 获取标签渲染数据
    • 生成文档案例
  • II 工具类封装
    • 2.1 word 渲染和word 转 pfd
    • 2.2 pdf转成一张图片
  • III poi-tl(word模板渲染) 标签简介
  • IV poi-tl提供了类 Configure 来配置常用的设置
    • 标签类型
    • 前后缀
    • 无模板创建文档
  • V poi-tl插件
    • 默认插件(标签)
    • 内置插件
    • 实现RenderPolicy接口开发自己的插件
    • 继承抽象模板类 AbstractRenderPolicy ,开发自己的插件
  • VI poi-tl自定义插件并绑定标签
    • 将插件应用到标签
    • 将插件注册为新标签类型
    • 案例
  • see also

引言

需求: 根据数据生成图文样式的Word文档,例如电子协议、设备安装表。

工具:

  1. word文档熏染使用poi-tl

poi-tl是一个基于Word模板和数据生成新文档的Word模板引擎。没有复杂的控制结构和变量赋值,只有标签,标签可以用文字、图片、表格等代替。

TDO模式:Template + data-model = output

V1.12.0版本作了一个不兼容的改动,升级的时候需要注意:

重构了PictureRenderData,改为抽象类,建议使用Pictures工厂方法来创建图片数据

        <dependency><groupId>com.deepoove<

相关文章:

Java生成Word->PDF->图片:基于poi-tl 进行word模板渲染

文章目录 引言I Java生成Word、PDF、图片文档获取标签渲染数据生成文档案例II 工具类封装2.1 word 渲染和word 转 pfd2.2 pdf转成一张图片III poi-tl(word模板渲染) 标签简介文本标签{{var}}图片标签表格标签引用标签IV poi-tl提供了类 Configure 来配置常用的设置标签类型前后…...

JVM内存模型笔记

1. 运行时数据区概述 JVM内存布局规定了Java运行过程中的内存申请、分配和管理策略。运行时数据区分为线程私有和线程共享两种。 2. 线程私有内存 程序计数器&#xff1a;存储当前线程执行的字节码指令地址。虚拟机栈&#xff1a;保存方法调用的局部变量和部分结果。本地方法…...

每日一练 - eSight 网管远程告警通知方式

01 真题题目 eSight 网管支持的远程告警通知方式包括:(多选) A.邮件 B.语音 C.短信 D.微信 02 真题答案 AC 03 答案解析 eSight 网管系统支持多种远程告警通知方式&#xff0c;包括邮件和短信。 这些通知方式可以帮助网络管理员及时了解网络设备的状态和告警信息&#xff0…...

[matlab] 鲸鱼优化算法优化KNN分类器的特征选择

目录 引言 智能优化算法概述 智能优化算法在KNN特征选择中的应用 应用步骤 UCI数据集 鲸鱼优化算法 一、算法背景与原理 二、算法组成与步骤 三、算法特点与优势 四、应用与挑战 代码实现 鲸鱼优化算法 主程序 打印结果 引言 智能优化算法在优化KNN&#xff08;…...

vscode ssh-remote 疑似内存泄漏问题

vscode ssh-remote疑似内存泄漏问题 系统信息与版本号 版本&#xff1a;1.88.1&#xff08;通用&#xff09; 日期&#xff1a;2024-04-10T17:42:52.765Z Electron: 28.2.8 ElectronBuildId: 27744544 Chromium&#xff1a;120.0.6099.291 Node.js&#xff1a;18.18.2 V8&…...

初识自然语言处理NLP

文章目录 1、简介2、自然语言处理的发展简史3、语言学理论句法学&#xff08;Syntax&#xff09;语义学&#xff08;Semantics&#xff09;语用学&#xff08;Pragmatics&#xff09;形态学&#xff08;Morphology&#xff09; 4、统计与机器学习方法n-gram 模型隐马尔可夫模型…...

分布式系统架构-微服务架构

一.什么是分布式系统架构 分布式系统架构是指将一个单一的应用程序或服务拆分成多个独立的部分&#xff0c;这些部分可以在不同的计算机、服务器或者地理位置上运行&#xff0c;并通过网络进行通信和协作。分布式系统的设计旨在提高系统的可靠性、可用性和扩展性&#xff0c;同…...

docker搭建内网穿透服务

docker搭建内网穿透服务 frpfrpsfrpc zerotier构建 moon构建 planet查询客户端配置moon方法 nps frp 参考文章&#xff1a;https://blog.csdn.net/weixin_43909881/article/details/126526059 frps docker pull snowdreamtech/frps docker run --restartalways --network ho…...

html+css+js网页设计 体育 金轮健身7个页面

htmlcssjs网页设计 体育 金轮健身7个页面 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&…...

BGP基础简介(一)

AS 是一组运行相同IGP协议的设备组成的网络 AS号&#xff1a; 16bit&#xff1a;64512~65535为私有AS32bit:4200000000~4294967294为私有AS其余都是共有AS&#xff0c;需要向IANA申请 EGP 外部网关协议&#xff0c;bgp的前身&#xff0c;缺点:只发布路由信息&#xff0c;不…...

力扣面试150 反转链表 II 三指针

Problem: 92. 反转链表 II &#x1f468;‍&#x1f3eb; 参考题解 特殊情况 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val…...

GPT-4.o mini

https://share.xuzhugpt.cloud/ GPT-4.o mini 目前免费使用 把上面[chatgpt4o-mini-xuzhu]复制到UserToken的文本框中 点击[个人账户] 测试一下哈&#xff0c;看看&#xff1a; GPT-4.o代码有时候还是有严重错误&#xff1a;好奇怎么来的 上面是我写得&#xff0c;下面是GPT写…...

【C++】优先级队列(容器适配器)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言 string vector list 这种线性结构是最基础的存储结构&#xff0c;C&#xff08;STL&#xff09;container很好的帮助我们数据存储的问题。 容器适配器 介绍 容器适配器是C标准模板库&#xff08;STL&#xff09;中…...

docker代理

Dockerd 代理 sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.confproxy.conf [Service] Environment"HTTP_PROXYproxy.example.com:8080/" Environment"HTTPS_PROXYproxy.example.com:8080/&qu…...

(四)activit5.23.0修复跟踪高亮显示BUG

一、先看bug 在 &#xff08;三&#xff09;springboot2.7.6集成activit5.23.0之流程跟踪高亮显示 末尾就发现高亮显示与预期不一样&#xff0c;比如上面的任务2前面的箭头没有高亮显示。 二、分析原因 具体分析步骤省略了&#xff0c;主要是ProcessInstanceHighlightsResour…...

AsyncTask

AsyncTask简介 AsyncTask 是 Android 提供的一个轻量级的异步任务类&#xff0c;它允许在后台线程中执行耗时操作&#xff08;如网络请求、数据库操作等&#xff09;&#xff0c;并在操作完成后更新 UI。其设计初衷是为了简化后台任务的处理&#xff0c;特别是在不需要复杂并发…...

嵌入式面试知识点总结 -- FreeRTOS篇

一、堆栈溢出检测 问题&#xff1a; 问题一&#xff1a;FreeRTOS堆栈溢出检测的方法&#xff1f; 解答&#xff1a; 参看&#xff1a;FreeRTOS学习 – FreeRTOSConfig.h介绍 两种堆栈溢出检测方法&#xff1a; 方法1: 开启方法&#xff0c;configCHECK_FOR_STACK_OVERFLOW…...

【深度学习】注意力机制(Transformer)

注意力机制 1.基础概念 1.1 查询、键和值 在人类的注意力方式中&#xff0c;有自主性的与非自主性的注意力提示两种解释方式。所谓自主性注意力提示&#xff0c;就是人本身主动想要关注到的某样东西&#xff1b;非自主性提示则是基于环境中物体的突出性和易见性&#xff0c;…...

【MySQL】将一张表的某一个值赋值到另一张表中

场景 两张表可以通过某个字段关联起来&#xff0c;并且想要将其中一张表的某个值赋值到另一张表的某个字段中 实操 在MySQL中&#xff0c;要将一张表&#xff08;我们称之为Table_A&#xff09;的某个字段的值赋给另一张表&#xff08;Table_B&#xff09;的对应字段&#x…...

怎样确定局域网里面是否有MAC地址冲突

目录 MAC地址冲突的现象1. 网络连接不稳定2. 数据包丢失3. 网络性能下降4. 无法访问特定设备5. 网络诊断工具的异常结果6. 网络安全问题 确定MAC地址冲突的方法如何解决MAC地址冲突总结 MAC地址冲突 是指在同一局域网&#xff08;LAN&#xff09;中&#xff0c;两个或多个设备具…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...