java替换图片中文字_Java 添加、替换、删除Word中的图片

文档中,可以通过图文混排的方式来增加内容的可读性,相比纯文本文档,在内容展现方式上也更具美观性。在给文档添加图片时,可设置图片的文本环绕方式、旋转角度、图片高度/宽度等;另外,也可对文档中已有的图片实现替换、删除等操作。本文将从在Word文档中添加、替换、删除图片等三个操作需求来介绍。具体代码可参考以下示例。

工具使用:Free Spire.Doc for Java(免费版)

Jar文件获取方法:

方法1:通过官网下载jar文件包。下载后,解压文件;解压后,将lib文件夹下的Spire.Doc.jar导入java程序。如下图:

e00dede3994dc53cb3294c69f052bbf0.png

方法2:可通过maven安装导入

【示例1】添加图片到Word

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextWrappingStyle;
import com.spire.doc.fields.DocPicture;public class AddPicture {public static void main(String[] args) {//加载文档Document doc = new Document();doc.loadFromFile("test.docx");//获取第二段Paragraph para = doc.getSections().get(0).getParagraphs().get(1);//添加图片,并设置图片高、宽、旋转角度、文本环绕方式DocPicture picture = para.appendPicture("tp.png");picture.setHeight(150);picture.setWidth(200);picture.setRotationEx(30);picture.setTextWrappingStyle(TextWrappingStyle.Inline);;//保存文档doc.saveToFile("AddPicture.docx",FileFormat.Docx_2013);doc.dispose();}
}

图片添加效果:

1f3e10f54608ba32c52ac63a8293aeb3.png

【示例2】替换Word中的图片

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture;public class ReplacePicture {public static void main(String[] args) {//加载Word文档Document doc = new Document();doc.loadFromFile("sample.docx");//获取文档中的指定段落Section section = doc.getSections().get(0);Paragraph para = section.getParagraphs().get(0);//替换段落中的第一张图片Object obj = para.getChildObjects().get(0);if(obj instanceof DocPicture){DocPicture pic = (DocPicture)obj;pic.loadImage("tp.png");}/*//批量替换图片for(int i =0;i < section.getParagraphs().getCount();i++){Object obj = section.getParagraphs().get(i).getChildObjects();if(obj instanceof DocPicture){DocPicture pic = (DocPicture)obj;pic.loadImage("tp.png");}}*///保存结果文档doc.saveToFile("ReplaceWithImage.docx", FileFormat.Docx_2013);doc.dispose();}
}

图片替换效果:

08a51a6aae62e3ce491e3f2d422b2f97.png

【示例3】删除Word中的图片

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture;public class DeletePicture {public static void main(String[] args) {//加载测试文档Document doc = new Document();doc.loadFromFile("sample.docx");//获取段落Section sec = doc.getSections().get(0);Paragraph para = sec.getParagraphs().get(0);//获取段落中的图片对象,删除DocPicture picture = (DocPicture) para.get(0);para.getChildObjects().remove(picture);/*//批量删除所有图片for (int i = 0 ; i < sec.getParagraphs().getCount(); i++){Paragraph para = sec.getParagraphs().get(i);for (int j = 0; j< para.getChildObjects().getCount();j++) {Object obj = para.getChildObjects().get(j);if(obj instanceof DocPicture){DocPicture pic = (DocPicture)obj;para.getChildObjects().remove(pic);}}}*///保存结果文档doc.saveToFile("DeletePictures.docx", FileFormat.Docx_2013);doc.dispose();}
}

图片删除效果:

4044f514e64c031197b0a889905440d7.png

(本文完)

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

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

相关文章

kafka如何保证不重复消费又不丢失数据_Kafka写入的数据如何保证不丢失?

我们暂且不考虑写磁盘的具体过程&#xff0c;先大致看看下面的图&#xff0c;这代表了 Kafka 的核心架构原理。Kafka 分布式存储架构那么现在问题来了&#xff0c;如果每天产生几十 TB 的数据&#xff0c;难道都写一台机器的磁盘上吗?这明显是不靠谱的啊!所以说&#xff0c;这…

不允许输入特殊字符的正则表达式_JavaScript正则表达式常用技巧

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中&#xff0c;正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法。正则表达式的掌握程度能粗略地看出程序员的技术底子&#xff…

latex 算法_GitHub项目awesome-latex-drawing新增内容(四):绘制贝叶斯网络

近期&#xff0c;我们整理和开源了一个基于LaTeX的科技绘图项目&#xff0c;并将其取名为awesome-latex-drawing&#xff08;GitHub网址为&#xff1a;https://github.com/xinychen/awesome-latex-drawing&#xff09;&#xff0c;案例包括贝叶斯网络、图模型、矩阵/张量示意图…

mysql中的生日应该是什么类型_MySQL中的定点数类型

上一篇文章我们唠叨了浮点数&#xff0c;知道了浮点数存储小数是不精确的。本篇继续唠叨一下MySQL中的另一种存储小数的方式 —— 定点数。浮点数文章闪现&#xff1a;什么, 0.3 - 0.2 ≠ 0.1 ? 什么鬼定点数类型正因为用浮点数表示小数可能会有不精确的情况&#xff0c;在一些…

string转为char数组_StringBuilder的区别是什么?String是不可变?一点课堂(多岸学院)...

String和StringBuffer、StringBuilder的区别可变性简单的来说&#xff1a;String 类中使用 final 关键字字符数组保存字符串&#xff0c;private final char value[]&#xff0c;所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuild…

mysql 升级 openssl_【1分钟教程】LNMP架构应用实战 Openssl升级操作

由于实际生产环境需求&#xff0c;需要将LNMP环境中的openssl版本升级至目前最新版本openssl-1.1.0c&#xff0c;这玩意升级还真的不是一般的麻烦&#xff0c;由于它与系统各种服务都有相关的联系&#xff0c;比如ssh服务等&#xff0c;因此&#xff0c;升级非常的繁琐,所以今天…

miui秒解bl锁_MIUI12解锁bl篇(原谅我的过失,接上篇文章)

求原谅真心求原谅由于我的疏忽&#xff0c;上期教程不完整&#xff0c;对大家造成不便在这里给大家真诚道歉&#xff01;对不起&#xff01;请收下我的膝盖&#xff01;&#xff01;&#xff01;我的上个教程小米手机MIUI系统降级任意版本通用教程&#xff0c;MIUI12→MIUI9因为…

usbserialcontroller驱动安装不了_win10-有NVIDIA独显提示未安装控制面板的离线安装方式...

最近越来越多的用户反映NVIDIA显卡驱动设置不了啦&#xff0c;找不到NVIDIA显卡的控制面板。 也不知道NVIDIA在什么版本开始驱动安装包就不自带NVIDIA显卡控制面板了。 全新安装的显卡驱动就没有控制面板&#xff1b;或者Windows 10自带更新了显卡新版驱动后导致没有。 每次带N…

vue 点击li 中的img 怎么不冒泡_Vue全解

一.Vue实例内存图&#xff1a;1.把Vue的实例命名为vm&#xff0c;vm对象封装了对视图的所有操作包括数据读写、事件绑定、DOM更新2.vm的构造函数是Vue&#xff0c;按照ES6的说法vm所属的类是Vue3.options是new Vue的参数一般称为选项或构造选项1.options里面有什么英文文档搜op…

terminal services 找不到_电脑局域网中查看不到其他计算机或无法连接的解决办法...

在办公环境中&#xff0c;电脑经常需要打开网络&#xff0c;进行一些文件共享的操作&#xff0c;但是有时会出现很多无法共享的情况&#xff0c;之前有一篇文章讲过解决办法&#xff0c;今天再来将一下具体无法共享的错误提示和相对应的处理方法&#xff0c;主要有以下几种情况…

如何避免mysql回表查询_mysql如何避免回表查询

《迅猛定位低效SQL&#xff1f;》留了一个尾巴&#xff1a;select id,name where name‘shenjian‘select id,name,sexwhere name‘shenjian‘多查询了一个属性&#xff0c;为何检索过程完全不同&#xff1f;什么是回表查询&#xff1f;什么是索引覆盖&#xff1f;如何实现索引…

springmvc的工作原理_SpringMVC工作原理

1 简介SpringMVC框架是以请求为驱动&#xff0c;围绕Servlet设计&#xff0c;将请求发给控制器&#xff0c;然后通过模型对象&#xff0c;分派器来展示请求结果视图。其中核心类是DispatcherServlet&#xff0c;它是一个Servlet&#xff0c;顶层是实现的Servlet接口。2 运行原理…

跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF)

CSRF介绍什么是CSRF呢&#xff1f;我们直接看例子。https://mp.toutiao.com/profile_v3/graphic/preview?dodelete&pgc_id6829574701128352260这个URL是头条删除pgc_id为6829574701128352260的一篇文章的连接&#xff0c;通过执行这个URL用户就可以删除这篇文章。首先攻击…

unique函数_C++核心准则C.35:基类的析构函数必须满足的条件

C.35: A base class destructor should be either public and virtual, or protected and nonvirtual基类的析构函数要么是公开的虚函数&#xff0c;要么是保护的非虚函数Reason(原因)To prevent undefined behavior. If the destructor is public, then calling code can atte…

java jta 例子_Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)...

在本系列先前的文章中&#xff0c;我们主要讲解了JDBC对本地事务的处理&#xff0c;本篇文章将讲到一个分布式事务的例子。请通过以下方式下载github源代码&#xff1a;本地事务和分布式事务的区别在于&#xff1a;本地事务只用于处理单一数据源事务(比如单个数据库)&#xff0…

垂直串联六关节机器人调试手册_工业机器人有哪些应用你知道吗?

目前&#xff0c;工业机器人大部分集中于传统的焊接、喷涂等领域&#xff0c;我国工业机器人的核心部件和整机市场仍被国外垄断&#xff0c;工业机器人要面向整个智能制造市场&#xff0c;还需要具备应对整个智能制造过程中大多数工艺的能力&#xff0c;而工业互联网则是实现智…

java 生成校验验证码_java生成验证码并进行验证

一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制&#xff0c;并将绘制在图片上的验证码存放到session中用于后续验证最后通过ImageIO将生成的图片进行输出通过页面提交的验证码和存放在session中的验证码对比来进行校验二、生…

yy自动语音接待机器人_智能语音机器人落地产品有哪些?

据相关研究报告表明&#xff0c;在众多人工智能落地产品或者应用场景中&#xff0c;智能语音机器人无论从产品的成熟度还是应用的广泛度来说&#xff0c;都是人工智能行业最热门和最有前景的产品。智能语音机器人并不只是一款产品&#xff0c;它是所有智能语音系列产品的统称&a…

java资源文件获取属性_Java读写资源文件类Properties

Java中读写资源文件最重要的类是Properties1) 资源文件要求如下:1、properties文件是一个文本文件2、properties文件的语法有两种&#xff0c;一种是注释&#xff0c;一种属性配置。注 释&#xff1a;前面加上#号属性配置&#xff1a;以“键值”的方式书写一个属性的配置信息…

java被放弃了_为什么学Java那么容易放弃?

学习Java确实很容易就放弃&#xff0c;但是也很容易就学好&#xff0c;因为大多数人都是抱着试一试的心态&#xff0c;然后当后面就坚持不下去但是回过头来想一想&#xff0c;打游戏上分容易吗&#xff0c;一样是磕磕碰碰的&#xff0c;有时候十几连跪都不会放弃你上分的心情。…