java html写入到word文档_java 使用jacob将html页面写入word
在此先声明最重要的一点:使用jacob将html导入word时图片是使用链接的方式引入的,也就是说如果你的图片删除了,那么word中图片也没了。
原文链接:https://blog.csdn.net/feicy101/article/details/52134938?locationNum=15
本人是对原文链接中 :jacob替换图片进行了测试
maven:
net.sf.jacob-project
jacob
1.14.3
原文代码:
packagecom.thinkgem.jeesite.test;importcom.jacob.activeX.ActiveXComponent;importcom.jacob.com.Dispatch;importcom.jacob.com.Variant;/***@authorliuwei
* @date 2018年9月30日 上午10:58:23
**/
public classInsertPicToWord {/*** 给指定的word文档在字符串指定位置插入图片
*@paramwordFile word文档
*@paramimagePath 待添加图片的路径
*@paramtarStr 指定的字符串位置*/
public static voidinsertImage(String wordFile, String imagePath,
String tarStr) {
ActiveXComponent app= new ActiveXComponent("Word.Application");//启动word
try{
app.setProperty("Visible", new Variant(false));//设置word不可见
Dispatch docs= app.getProperty("Documents").toDispatch();
Dispatch doc=Dispatch.invoke(
docs,"Open",
Dispatch.Method,new Object[] { wordFile, new Variant(false),new Variant(false) }, new int[1]).toDispatch();//打开word文件,注意这里第三个参数要设为false,这个参数表示是否以只读方式打开,//因为我们要保存原文件,所以以可写方式打开。
Dispatch selection= app.getProperty("Selection").toDispatch();
Dispatch.call(selection,"HomeKey", new Variant(6));//移到开头
Dispatch find= Dispatch.call(selection, "Find").toDispatch();//获得Find组件
Dispatch.put(find,"Text", tarStr);//查找字符串tarStr
Dispatch.call(find,"Execute");//执行查询
Dispatch.call(Dispatch.get(selection,"InLineShapes").toDispatch(),"AddPicture", imagePath);//在指定位置插入图片
Dispatch.call(doc,"Save");//保存
Dispatch.call(doc,"Close", new Variant(false));
}catch(Exception e) {
e.printStackTrace();
}finally{
app.invoke("Quit", newVariant[] {});
app.safeRelease();
}
}
}
测试:
packagecom.thinkgem.jeesite.test;/***@authorliuwei
* @date 2018年9月30日 上午11:00:30
**/
public classInsertPicToWordTest {
@SuppressWarnings("static-access")public static voidmain(String[] args) {//TODO Auto-generated method stub
InsertPicToWord word = newInsertPicToWord();
String wordFile= "C:\\Users\\admin\\Desktop\\1.doc";
String imagePath= "C:\\Users\\admin\\Desktop\\2.jpg";
String tarStr= "${image1}";
word.insertImage(wordFile, imagePath, tarStr);
}
}
你要下载jacob(要和自己项目里dependience中的版本一致),在找到下载jacob里的jacob-1.14.3-x64.dll【和操作系统版本一致】,
将这个文件依次贴到E:\jdk\jre1.8\bin和E:\jdk\1.8\jre\bin【否则会报错:no jacob-1.14.3-x64 in java.library.path】
执行测试后手动创建的1.doc里确实有了图片,但是程序也在我的桌面上创建了一个文件夹,该文件夹里存有一张被更名的图片【即原图2.jpg】,我将该文件夹删除后,1.doc中的图片也消失了,也就是说,这种实现方式是将图片以链接的引入word里的。
这种方式适合向word文档里写入文字,对于图片实现方式不太好。
原文:https://www.cnblogs.com/liudaihuablogs/p/9732231.html
java html写入到word文档_java 使用jacob将html页面写入word相关推荐
- java web 操作word文档_Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...
- java导出生成word文档_java使用freemarker 生成word文档
最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的样式也不美观,于是选择了另一种方式--- ...
- python生成word文档的表格_2018-10-04 [日常]用Python读取word文档中的表格并比较
演示如下. 两个简单的word文档, 各有一个表格: 读取文档中的表格到列表(为演示只对单列表格操作): import docx def 取表格(文件名): 文件 = docx.Document(文件 ...
- 如何用vba把word文档的每页单独保存为一个word文档
要将word文档的每页单独保存为一个word文档,首先需要能够逐页遍历word文档. 逐页遍历word文档可以使用word的定位功能. 代码如下: Sub SplitToOnePage()Const ...
- python 合并word文档,实现同一个文件夹下面的word合并成一个word
python 合并word文档,实现同一个文件夹下面的word合并成一个word -- coding:utf-8 -- import win32com.client as win32 import o ...
- java读取带格式word文档_Java读取word文档解决方案
java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java ...
- java导出html word文档_java生成带html样式的word文件
最近在项目中需要将通过富文本编辑器处理过的文字转换为Word,查了很久,大家通常的解决办法是使用Jacob或POI等组件直接生成Word,但是都无法将富文本编辑器处理过的文字保留样式并保存为Word, ...
- java循环导出word文档_Java使用freemarker导出word文档
通过freemarker,以及JAVA,导出word文档. 共分为三步: 第一步:创建模板文件 第二步:通过JAVA创建返回值. 第三步:执行 分别介绍如下: 第一步: 首先创建word文档,按照想要 ...
- 一篇就够,python 操作 word 文档,使用 python-docx 落地实现,写入篇
本篇博客为大家带来 Python 操作 docx 文档相关知识点. 主要涉及的内容为 python-docx ,一款可以操作 Word 文档(仅支持 docx)的第三方库. 文章目录 写在前面 创建一 ...
最新文章
- 如何使div填充剩余的水平空间?
- eclipse实现Android登录功能,eclipse开发安卓登录
- 【C语言】如何安装CLion并在CLion中Run一个程序
- oracle 11g初始段大小,Oracle 11g配置调优,一般需要注意哪些方面呢?
- TFS首次安装与配置,极其注意事项个人备用
- List集合之Vector
- 使用Python下载百度云文件
- 【PAT B1024】科学计数法(C语言)
- matlab液压仿真模型,基于MATLABsimulink的液压系统动态仿真.ppt
- excel将内容粘贴到筛选后的可见单元格
- dbv 检查数据文件是否有坏块
- csr蓝牙适配 linux,Linux系统下蓝牙立体声配置A2DP profile
- 阿里云-云开发平台计算篇——加强应用本身的计算能力
- Android studio 多渠道打包(包括不同的包使用不同的资源文件、不同的包写不同的代码,包名等等)
- 史上最全的软件测试面试题
- java viewer 控件_插件制作过程记录(使用TreeViewer贡献视图)
- 数据结构的顺序表操作集
- 陷入苦战 台湾地区IT企业连续8个月减收
- 积分规则、原则与导数,微分方程细分、难点---基本涵盖
- CSS 设置超链接格式
热门文章
- SPFA ----模板 O(kE) (k一般不超过2)
- Visual studio C++ MFC之列表控件CListCtrl Control
- 17110 Divisible(basic)
- 苹果查询水货苹果笔记本(Mac Book)验机流程
- 对话框控件访问七种方式
- 表单中的重置与取消按钮
- 我的第一个C++程序——方块游戏 v1.0
- 如何实现图像访问计数器
- android studio 预览问题 :java.lang.NoClassDefFoundError: com/android/util/PropertiesMap
- 王伟storm_王伟 - 南京大学 - 化学化工学院