在此先声明最重要的一点:使用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相关推荐

  1. java web 操作word文档_Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...

  2. java导出生成word文档_java使用freemarker 生成word文档

    最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的样式也不美观,于是选择了另一种方式--- ...

  3. python生成word文档的表格_2018-10-04 [日常]用Python读取word文档中的表格并比较

    演示如下. 两个简单的word文档, 各有一个表格: 读取文档中的表格到列表(为演示只对单列表格操作): import docx def 取表格(文件名): 文件 = docx.Document(文件 ...

  4. 如何用vba把word文档的每页单独保存为一个word文档

    要将word文档的每页单独保存为一个word文档,首先需要能够逐页遍历word文档. 逐页遍历word文档可以使用word的定位功能. 代码如下: Sub SplitToOnePage()Const ...

  5. python 合并word文档,实现同一个文件夹下面的word合并成一个word

    python 合并word文档,实现同一个文件夹下面的word合并成一个word -- coding:utf-8 -- import win32com.client as win32 import o ...

  6. java读取带格式word文档_Java读取word文档解决方案

    java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java ...

  7. java导出html word文档_java生成带html样式的word文件

    最近在项目中需要将通过富文本编辑器处理过的文字转换为Word,查了很久,大家通常的解决办法是使用Jacob或POI等组件直接生成Word,但是都无法将富文本编辑器处理过的文字保留样式并保存为Word, ...

  8. java循环导出word文档_Java使用freemarker导出word文档

    通过freemarker,以及JAVA,导出word文档. 共分为三步: 第一步:创建模板文件 第二步:通过JAVA创建返回值. 第三步:执行 分别介绍如下: 第一步: 首先创建word文档,按照想要 ...

  9. 一篇就够,python 操作 word 文档,使用 python-docx 落地实现,写入篇

    本篇博客为大家带来 Python 操作 docx 文档相关知识点. 主要涉及的内容为 python-docx ,一款可以操作 Word 文档(仅支持 docx)的第三方库. 文章目录 写在前面 创建一 ...

最新文章

  1. 如何使div填充剩余的水平空间?
  2. eclipse实现Android登录功能,eclipse开发安卓登录
  3. 【C语言】如何安装CLion并在CLion中Run一个程序
  4. oracle 11g初始段大小,Oracle 11g配置调优,一般需要注意哪些方面呢?
  5. TFS首次安装与配置,极其注意事项个人备用
  6. List集合之Vector
  7. 使用Python下载百度云文件
  8. 【PAT B1024】科学计数法(C语言)
  9. matlab液压仿真模型,基于MATLABsimulink的液压系统动态仿真.ppt
  10. excel将内容粘贴到筛选后的可见单元格
  11. dbv 检查数据文件是否有坏块
  12. csr蓝牙适配 linux,Linux系统下蓝牙立体声配置A2DP profile
  13. 阿里云-云开发平台计算篇——加强应用本身的计算能力
  14. Android studio 多渠道打包(包括不同的包使用不同的资源文件、不同的包写不同的代码,包名等等)
  15. 史上最全的软件测试面试题
  16. java viewer 控件_插件制作过程记录(使用TreeViewer贡献视图)
  17. 数据结构的顺序表操作集
  18. 陷入苦战 台湾地区IT企业连续8个月减收
  19. 积分规则、原则与导数,微分方程细分、难点---基本涵盖
  20. CSS 设置超链接格式

热门文章

  1. SPFA ----模板 O(kE) (k一般不超过2)
  2. Visual studio C++ MFC之列表控件CListCtrl Control
  3. 17110 Divisible(basic)
  4. 苹果查询水货苹果笔记本(Mac Book)验机流程
  5. 对话框控件访问七种方式
  6. 表单中的重置与取消按钮
  7. 我的第一个C++程序——方块游戏 v1.0
  8. 如何实现图像访问计数器
  9. android studio 预览问题 :java.lang.NoClassDefFoundError: com/android/util/PropertiesMap
  10. 王伟storm_王伟 - 南京大学 - 化学化工学院