当前位置: 首页 > 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;两个或多个设备具…...

标题诊断报告如何与其他 SEO 数据结合分析

标题诊断报告在SEO中的重要性 在当今的数字营销世界中&#xff0c;标题诊断报告是每一个SEO优化者都必须了解和运用的工具。标题不仅是吸引用户点击的关键因素&#xff0c;也是搜索引擎评估页面相关性的重要元素。掌握如何有效利用标题诊断报告&#xff0c;可以帮助你提高网站…...

零基础玩转YOLO11目标跟踪:完整环境一键部署教程

零基础玩转YOLO11目标跟踪&#xff1a;完整环境一键部署教程 1. 环境准备与快速部署 1.1 系统要求 操作系统&#xff1a;Linux (推荐Ubuntu 20.04/22.04)硬件配置&#xff1a; GPU&#xff1a;NVIDIA显卡 (建议RTX 3060及以上)显存&#xff1a;至少8GB内存&#xff1a;16GB及…...

小白也能用!M2FP多人人体解析服务一键部署教程

小白也能用&#xff01;M2FP多人人体解析服务一键部署教程 1. 什么是M2FP多人人体解析服务&#xff1f; M2FP&#xff08;Mask2Former-Parsing&#xff09;是目前业界领先的语义分割算法&#xff0c;专注于多人人体解析任务。它能精准识别图像中多个人物的不同身体部位&#…...

在 AMD Ryzen AI 7 H350 Radeon 860M 上使用 Ollama 运行 GPU 加速

本文介绍了如何在搭载 AMD Ryzen AI 7 H350 及 Radeon 860M 显卡的系统上&#xff0c;配置 Ollama 以利用 GPU 运行 AI 模型。 一、安装 AMD 驱动程序 首先&#xff0c;请安装最新的 AMD 驱动程序&#xff0c;以确保系统能够正确识别并调用显卡硬件。 驱动程序下载地址&…...

Pop 核心架构解析:深入理解 Bubble Tea 框架与邮件发送原理

Pop 核心架构解析&#xff1a;深入理解 Bubble Tea 框架与邮件发送原理 【免费下载链接】pop Send emails from your terminal &#x1f4ec; 项目地址: https://gitcode.com/gh_mirrors/pop2/pop 想要在终端中优雅地发送邮件吗&#xff1f;Pop 是一个基于 Go 语言开发的…...

JAVA无人共享无人机赁柜预约小程序源码代码

JAVA无人共享无人机租赁柜预约小程序源码实现方案采用Uniapp框架开发无人共享无人机租赁柜预约小程序&#xff0c;需整合后端Java服务和前端跨平台技术。以下是核心实现方案&#xff1a;技术栈选择前端&#xff1a;Uniapp Vue.js uView UI后端&#xff1a;Spring Boot MyBat…...

别再手动画线了!用uniapp+高德地图SDK,5分钟搞定微信小程序轨迹绘制(附完整代码)

零基础实现UniApp高德地图轨迹绘制&#xff1a;从原理到实战封装 在移动应用开发中&#xff0c;地图轨迹功能是许多场景的刚需——从外卖配送路线、共享单车行程记录到物流追踪系统。传统实现方式往往需要开发者手动处理大量坐标点、编写复杂的画线逻辑&#xff0c;这不仅效率低…...

文心一言搜索优化,做好这件事就赢了一半

如果你在文心一言上铺了几百篇内容&#xff0c;但品牌词一问&#xff0c;AI还是引用别人——你缺的不是数量&#xff0c;是质量锚点。文心一言的算法有一套对“优质可信内容”的隐形成交系统&#xff0c;没通过质检的内容&#xff0c;发再多也是无效库存。去年我们实测过一个案…...

51单片机(二) --- GPIO + 中断

一、GPIO 通用输入输出口GPIO&#xff08;General Purpose Input Output&#xff09;即通用目的输入输出口&#xff0c;是 51 单片机与外部设备进行数据交互的核心通道&#xff0c;51 单片机的 P0、P1、P2、P3 四组口均为 GPIO 口。与入门阶段仅用到的简单电平输出不同&#xf…...

2025届学术党必备的六大降重复率神器横评

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当前&#xff0c;人工智能技术快速发展&#xff0c;这为毕业论文写作提供了新的辅助路径&…...