JAVA如何将图片插入word文档且不破坏原有格式,设置图片悬浮与文字之上

首先需要引入俩东西

<repositories><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https://repo.e-iceblue.com/nexus/content/groups/public/</url></repository>
<dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>5.2.0</version></dependency>

然后就是代码了:

首先是插入一个图:

package org.springblade.common.tool;import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextWrappingStyle;
import com.spire.doc.fields.DocPicture;public class InsertImageIntoWord {public static void main(String[] args) throws Exception {//创建一个Document对象用来加载示例文档Document doc = new Document();doc.loadFromFile("D:\\无用\\test.docx");//创建一个DocPicture对象用于加载要加载的图片DocPicture picture = new DocPicture(doc);picture.loadImage("D:\\无用\\image.jpg");//自定义图片的尺寸大小picture.setWidth(150);picture.setHeight(100);//将图片的文本环绕方式设置为Tightpicture.setTextWrappingStyle( TextWrappingStyle.Behind);// 获取第二页的段落Section section = doc.getSections().get(0); // 第二页的索引为 1Paragraph paragraph = section.getParagraphs().get(18); // 可根据需要选择第二页的哪个段落// 将图片插入到指定段落paragraph.getChildObjects().insert(0, picture);// 自定义图片插入的位置   // 设置图片的水平位置为距离页面左侧 55 磅的位置picture.setHorizontalPosition(55.0F);
// 设置图片的垂直位置为距离页面顶部 10 磅的位置picture.setVerticalPosition(10.0F);//保存输出文档doc.saveToFile("D:\\无用\\test3.docx", FileFormat.Docx);}}

其次是插入多张图(拿第一个代码改的)

package org.springblade.common.tool;import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;public class InsertMultiImageIntoWord {public static void main(String[] args) throws Exception {// 加载文档Document doc = new Document();doc.loadFromFile("D:\\无用\\test.docx");String picPath = "D:\\无用\\image.jpg";// 创建 DocPicture 对象并加载图片DocPicture picture = new DocPicture(doc);picture.loadImage("D:\\无用\\image.jpg");picture.setWidth(150);picture.setHeight(100);//将图片的文本环绕方式设置为Tightpicture.setTextWrappingStyle( TextWrappingStyle.Behind);// 获取第22、44、66、88段落并插入图片insertPictureInParagraph(doc, picPath, 22);insertPictureInParagraph(doc, picPath, 44);insertPictureInParagraph(doc, picPath, 66);insertPictureInParagraph(doc, picPath, 88);// 保存文档doc.saveToFile("D:\\无用\\test2.docx", FileFormat.Docx);}// 在指定段落中插入图片的方法private static void insertPictureInParagraph(Document doc, String picPath, int paragraphIndex) {Section section = doc.getSections().get(0);Paragraph paragraph = section.getParagraphs().get(paragraphIndex);DocPicture newPicture = new DocPicture(doc);newPicture.loadImage(picPath);
//        newPicture.setWidth(picture.getWidth());
//        newPicture.setHeight(picture.getHeight());paragraph.getChildObjects().insert(0, newPicture);//将图片的文本环绕方式设置为TightnewPicture.setTextWrappingStyle( TextWrappingStyle.Behind);newPicture.setHorizontalPosition(0.0F);newPicture.setVerticalPosition(10.0F);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ipmitool运维工具

查看ipmi信息 # ipmitool lan print 1 # ipmitool fru list 1. 如何查询BMC地址&#xff08;ipmitool lan print 1 不行的话&#xff0c;使用ipmitool lan print 2&#xff09; # ipmitool lan print 2|grep "IP Address" IP Address Source : BIOS Assigned Addres…

大模型应用实战3——开源大模型(以Qwen为例)实现多论对话功能

对于国内用户来说&#xff0c;一个比较稳定的下载和部署开源大模型的方法就是使用ModelScope的SDK进行下载&#xff0c;然后再Transformer库进行调用。在代码环境中&#xff0c;ollama则提供了openai API风格的大模型调用方法。在开启ollama服务情况下&#xff0c;我们只需要进…

vue3中的shallowReactive

shallowReactive只能修改reactive中浅层次的数据 格式只能修改xxx.xxx 555 不能修改 xxx.xxx.xxx <template><div>{{ sum }}{{ person }}<button click"ssum">修改sum</button><button click"sperson">修改name</…

Python中的爬虫实战:豆瓣图书爬虫

Python是当今最热门的编程语言之一&#xff0c;在不同的领域都得到了广泛的应用&#xff0c;如数据科学、人工智能、网络安全等。其中&#xff0c;python在网络爬虫领域表现出色&#xff0c;许多企业和个人利用python进行数据采集和分析。本篇文章将介绍如何使用python爬取豆瓣…

MySQL中的ibd2sdi—InnoDB表空间SDI提取实用程序

ibd2sdi 是一个用于从 InnoDB 表空间文件中提取序列化字典信息&#xff08;Serialized Dictionary Information, SDI&#xff09;的实用程序。这个实用程序可以用于提取存储在持久化 InnoDB 表空间文件中的 SDI 数据。 可以对以下类型的表空间文件使用 ibd2sdi&#xff1a; 每…

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言&#xff1a;第一部分详细讲解DDS核心框图&#xff0c;还请读者深入阅读第一部分&#xff0c;以便理解DDS核心思想 三刷小梅哥视频总结&#xff01; 小梅哥https://www.corecourse.com/lander 一、DDS简介 DDS&#xff08;Direct Digital Synthesizer&#xff09;即数字…

OneNote for Windows 10 下载

OneNote for Windows 10 安装 1.在浏览器中输入地址&#xff1a;https://apps.microsoft.com/detail/9wzdncrfhvjl?hlzh-cn&glUS2OneNote for Windows 10 - 在 Windows 上免费下载并安装 |Microsoft StoreOneNote 是用于在设备上捕获和组织你的一切内容的数字笔记本。快速…

为什么 C++ 允许不安全的代码(Bjarne Stroustrup)

为什么 C 允许不安全的代码? 也就是说&#xff0c;为什么 C 支持可以用来违反静态&#xff08;编译时&#xff09;类型安全规则的操作&#xff1f; 为了直接访问硬件&#xff08;例如&#xff0c;把整数当作指向设备寄存器的指针&#xff09;为了获取最佳的运行时效率和空间…

Content Provider:深入解析Android数据共享的核心组件

在Android开发中&#xff0c;Content Provider是一个重要的组件&#xff0c;它允许应用程序之间共享数据。它扮演着“数据访问中间层”的角色&#xff0c;为不同应用程序提供了一个统一的数据访问接口。以下将从技术难点、面试官关注点、回答吸引力以及代码举例四个方面&#x…

BUG cn.bing.com 重定向的次数过多,无法搜索内容

BUG cn.bing.com 重定向的次数过多&#xff0c;无法搜索内容 环境 windows 11 edge浏览器详情 使用Microsoft Edge 必应搜索显示"cn.bing.com"重定向次数过多&#xff0c;无法进行正常的检索功能 解决办法 检查是否开启某些科_学_上_网&#xff08;翻_墙&#xf…

jQuery中Validate方法总结

jQuery中Validate方法总结 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; jQuery Validate是一个流行的jQuery插件&#xff0c;用于在客户端对表单进行验证。它…

轻松重命名Windows用户Users目录下的文件夹名称

设置系统还原点 为避免设置失败&#xff0c;需提前准备好系统还原点以备份恢复系统。 打开系统属性&#xff1a; 在“系统保护”选项卡中&#xff0c;选择你想要保护的系统驱动器&#xff08;通常是C:驱动器&#xff09;。 点击“配置”按钮。 在弹出的窗口中&#xff0c;选…

【Python机器学习】NMF——将NMF应用于模拟信号数据

假设我们对一个信号感兴趣&#xff0c;它是由三个不同信号源合成的&#xff1a; import matplotlib.pyplot as plt import mglearnSmglearn.datasets.make_signals() plt.figure(figsize(6,1)) plt.plot(S,-) plt.xlabel(Time) plt.ylabel(Signal) plt.show()不幸的是&#xff…

大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】

往期内容&#xff1a; 面试官问我&#xff1a;Redis处理点赞&#xff0c;如果瞬时涌入大量用户点赞&#xff08;千万级&#xff09;&#xff0c;应当如何进行处理&#xff1f;【后端八股文&#xff08;1&#xff09;】-CSDN博客 本文为【布隆过滤器八股文合集】初版&#xff0c…

数据结构:冒泡排序,选择排序,插入排序,希尔排序的实现分析

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 小新的主页&#xff1a;编程版小新-CSDN博客 1.冒泡排序 1.1算法思想 冒泡排序的基本思想就是&a…

由浅入深,走进深度学习(4)

各位小伙伴大家好&#xff0c;这期内容是深度学习基础的一个进阶&#xff0c;也可以说是夯实一下很多细节内容 个人感受&#xff1a;动手敲一遍&#xff0c;带着思考&#xff0c;会有不一样的感受&#xff01;&#xff01;&#xff01; 代码是比较多的&#xff0c;有很多内容…

全局变量和局部变量

全局变量未初始化&#xff0c;则它的值为0&#xff1b; 局部变量未初始化&#xff0c;则它的值为随机值&#xff1b; 局部变量的作用域是变量所在的局部范围; 全局变量的作用域是整个工程; 生命周期&#xff1a; 变量的生命周期指的是变量从创建到销毁的整个阶段。 局部变量的生…

react实现路由拦截器

1. 路由拦截的概念 路由拦截&#xff1a;在用户导航到某个路由之前&#xff0c;通过某种逻辑来拦截、检查或修改导航行为。它可以用于实现权限控制、身份验证、页面加载前的准备工作等场景。 2. React Router中的路由拦截实现 2.1 使用<Route>组件的render属性 在Rea…

每天一个项目管理概念之关键路径

在项目管理中&#xff0c;关键路径分析&#xff08;Critical Path Method, CPM&#xff09;是计划和控制项目时间表的重要工具。关键路径是项目网络图中从开始到结束的最长路径&#xff0c;它确定了完成整个项目所需的最短时间。任何关键路径上的任务延误都将直接导致整个项目延…

mysql插入blob或longblob的字符串

mysql字段格式是blob的时候&#xff0c;直接插入字符串会异常 insert table (str),values (aaaa)会异常 需要将字符串转为0x格式的16进制字符串才行 aaaa转换之后为61616161 insert table (str),values (0x61616161)java将字符串转16进制字符串 "0x"DatatypeConver…