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

学做网站网自己的代码放WordPress

学做网站网,自己的代码放WordPress,武昌网站建设价格多少,黑龙江网站建设业务Java使用(Poi-tl) 在word(docx)中指定位置插入图片 Poi-tl 简介Maven 依赖配置Poi-tl 实现原理与步骤1. 模板标签规范2.完整实现代码3.效果展示 Poi-tl 简介 Poi-tl 是基于 Apache POI 的 Java 开源文档处理库,专注于…

Java使用(Poi-tl) 在word(docx)中指定位置插入图片

  • Poi-tl 简介
  • Maven 依赖配置
  • Poi-tl 实现原理与步骤
    • 1. 模板标签规范
    • 2.完整实现代码
    • 3.效果展示

Poi-tl 简介

Poi-tl 是基于 Apache POI 的 Java 开源文档处理库,专注于高效操作 Word 文档(.docx 格式)。它通过模板引擎机制简化复杂文档生成流程,相比原生 POI 具备更简洁的 API、更强的灵活性和更优的性能表现,广泛应用于报表生成、合同模板填充、文档批量处理等企业级场景。

Maven 依赖配置

<dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.0</version>
</dependency>

Poi-tl 实现原理与步骤

1. 模板标签规范

在 Word 模板中需使用特定格式的占位符标识图片插入位置,标准格式为:{{@标签名称}}。
示例标签格式:

{{@Head}}  <!-- 审核人签名位置 -->
{{@Approver}}  <!-- 批准人签名位置 -->

在这里插入图片描述

2.完整实现代码

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.PictureType;
import com.deepoove.poi.data.Pictures;import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.HashMap;
import java.util.Map;/*** Word文档图片插入工具类* 功能:通过Poi-tl在Word模板指定位置插入图片*/
public class WordImageInserter {/*** 主方法:执行Word图片插入操作*/public static void main(String[] args) {Path templatePath = Path.of("D:\\template.docx");        // 源文档模板路径Path outputPath= Path.of("D:\\template_temp.docx"); // 新文件路径Path inspectorImagePath = Path.of("D:\\signatures\\inspector.png"); // 审核人签名图片Path approverImagePath = Path.of("D:\\signatures\\approver.png");   // 批准人签名图片try {// 绑定模板占位符与图片渲染对象Map<String, Object> dataModel = new HashMap<>();dataModel.put("Head", createPicture(inspectorImagePath, 100, 50));     // 替换{{@Head}}标签dataModel.put("Approver", createPicture(approverImagePath, 100, 50)); // 替换{{@Approver}}标签// 执行文档渲染与图片插入try (InputStream templateStream = Files.newInputStream(templatePath);OutputStream tempOutputStream = Files.newOutputStream(tempOutputPath)) {// 编译模板并渲染数据XWPFTemplate template = XWPFTemplate.compile(templateStream).render(dataModel);// 输出到临时文件(避免直接修改原文件导致损坏)template.write(tempOutputStream);template.close();}// 原子性替换原文件(保证操作完整性)Files.move(tempOutputPath, templatePath, StandardCopyOption.REPLACE_EXISTING);System.out.println("图片插入操作完成,文档已更新");} catch (IOException e) {System.err.println("文档处理异常:" + e.getMessage());e.printStackTrace();}}/*** 构建图片渲染对象(支持尺寸自定义)* @param imagePath 图片文件路径* @param width 图片宽度(像素)* @param height 图片高度(像素)* @return 图片渲染对象(可直接用于模板渲染)* @throws IOException 图片读取失败时抛出*/private static Object createPicture(Path imagePath, int width, int height) throws IOException {// 使用NIO流加载图片,自动识别图片类型(此处显式指定为PNG)return Pictures.ofStream(Files.newInputStream(imagePath), PictureType.PNG).size(width, height)  // 自定义图片尺寸.create();           // 生成图片渲染实体}
}

3.效果展示

在这里插入图片描述

http://www.dtcms.com/a/496337.html

相关文章:

  • 创建蛋糕网站建设方案开发网站心得
  • 2025 GEO 在线优化服务商有哪些?这几款各有侧重,哪家好?
  • 取消cine camera的预览窗口
  • public,private与protected
  • 【题解】B2614【深基1.习6】鸡兔共笼
  • 网站 默认首页深圳flash网站建设
  • 网站虚拟空间多少钱用糖做的网站
  • 域名绑定了ip地址,也安装了宝塔但还是无法访问
  • python+vue电动汽车智能充电管理系统
  • 网站开发费属于无形资产深圳制作网站
  • 探域科技在AI电商应用深度调研报告(2025年更新版)
  • 建网站语言深圳室内设计师网
  • Spring核心:@Configuration注解详解
  • 做网站的需要考什么证书吗南阳网站营销外包
  • 有没有可以免费做试卷的网站_最好可以学会...wordpress开启vip会员查看
  • 程序员做个网站要多少钱呢重庆网站品牌推广
  • 【Linux】Linux时区设置与Java应用的时区问题
  • Linux中时间子系统初始化time_init函数
  • 【Algorithm】二分查找算法
  • Python字符串的魔法:拼接、编码与解码的艺术
  • 轻松拖拽:用 Dify 搭建企业级 AI 应用
  • 素材管理姬
  • 贵州黔致酒业推出的简礼酒介绍
  • 自己做网站怎么推广享设计官网
  • 鸿蒙NEXT传感器开发概述:开启智能感知新时代
  • Tailwind CSS 小白快速入门速查手册
  • php网站开发人员网站开发的总结
  • 私人网站建设步骤官网网页制作
  • Sora 后思考:从 AI 工具到 AI 平台,产业 AGI 又近了一步
  • 安全版数据库审计的配置方法