Java 比较可靠的docx文件流转doc流的方法。
网上好多都是doc转docx,之前使用aspose.word 实现docx转doc后,如果文档内容比较复杂时,转换出的doc打开很大概率会报错,后转用docx4j完美实现了docx转doc且打开不会报错。

1、相关代码

            String filePath = "C:\\Users\\desktop\\docx文件的.docx";byte[] content = new byte[0];try {content = Files.readAllBytes(Paths.get(filePath));} catch (IOException e) {e.printStackTrace();}InputStream inputStream = new ByteArrayInputStream(content);WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(inputStream);// 获取项目路径String path = System.getProperty("user.dir");// 先将docx转换成xml,然后再转换成doc,处理过程中依次生成临时xml和doc文件,// 处理完后xml文件自动删除, 可读取临时doc文件字节流存库后将临时doc文件删除File outFileXml = new File(path , "tempFileOne.xml");Docx4J.save(wordMLPackage, outFileXml, Docx4J.FLAG_SAVE_FLAT_XML);File outFileDoc = new File(path + "tempFileTwo.doc");outFileXml.renameTo(outFileDoc);FileInputStream fileInputStream =  new FileInputStream(outFileDoc);// 如果只需获取文件流,读取后,删除临时doc, 直接returnbyte[] resultOut = FileCopyUtils.copyToByteArray(fileInputStream);// 如果只需要文件的字节数组,可删除临时doc文件,这样就不会有转换的痕迹outFileDoc.delete();return resultOut;// 2、也可以输出到指定文件FileOutputStream fos = new FileOutputStream("C:\\Users\\desktop\\导出的doc文件66666.doc");byte[] buffer = new byte[1024];int r = 0;while ((r = fileInputStream.read(buffer)) != -1) {fos.write(buffer, 0, r);}fileInputStream .close();

2、使用的依赖

     <dependency><!--支持插入图片--><groupId>org.docx4j</groupId><artifactId>docx4j</artifactId><version>3.3.1</version></dependency>

Java 使用Docx4j实现word文档Docx格式转Doc格式相关推荐

  1. 使用java将word文档docx,doc(包含图形,文本框)完美转换成所有格式图片(pdf,png,gif,jpeg等等)

    使用java将word文档docx,doc(包含图形,文本框,图片等)完美转换成所有格式图片(pdf,png,gif,jpeg等等)下文中附带代码,效果图等 思路 使用到的包 实现代码 效果图: 思路 ...

  2. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇

    (一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...

  3. docx4j操作word文档之生成页码、合并多个文档

    docx4j操作word文档: 动态生成表格行数并填充数据 单元格内填充图片 合并多个word文档(包含页码,纸张方向等等) 1.动态生成表格行数并填充数据 首先创建模板文件.docx,如图: 代码如 ...

  4. (五)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之word文件合并[支持多文件]

    (五).JAVA基于OPENXML的word文档插入.合并.替换操作系列之word文件合并[支持多文件] 二.word合并的多种方案简单比较 三.基于Open Xml WordprocessingML ...

  5. java openxml 操作 word,(三)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之html转word...

    (三).JAVA基于OPENXML的word文档插入.合并.替换操作系列之html转word 系列笔记传送门 富文本转word文档 准备待转换内容 内容清理与格式化 转换成word文档 输出结果展示 ...

  6. java重新组合_Java 合并Word文档

    在日常工作中,难免会遇到需要将多个Word文档合并到一个文档中,对其进行重新整理的情况,为了能帮助大家高效快速的完成这个操作,接下来本文就将介绍两种在Java程序中合并Word文档的方法. 方法一:如 ...

  7. Java使用poi-tl生成word文档

    Java使用poi-tl生成word文档,可以对模板文件进行文本替换,图片.表格.超链接添加.图表处理等.大概的说明都在代码注释里,只有一个地方需要注意,就是图表的替换,占位符{{barChart}} ...

  8. Docx4j替换word文档的页眉

    Docx4j替换word文档的页眉 目前国内关于Docx4j的帖子少的可怜,看来看去都是那几个.本人使用Docx4j也有一段时间,虽然还有许多东西没了解全,但在这边想分享我的学习经验,互相交流,也方便 ...

  9. Java实现在线打开word文档并强制留痕/留下痕迹

    前言: 在OA系统中,时不时的都会伴随着文档流转过程.比如有的系统中会有领导审批的流程,那么在A领导审批完成后,他的审批痕迹能不能强制保留下来,以供下一步处理文档的专员清晰地参考呢? 我们知道,在本地 ...

最新文章

  1. CAS(compareAndSwap)原理
  2. Android检查是否自启动,android – 如何检查我的应用程序是否是默认启动器
  3. flex中自定义皮肤的按钮制作
  4. springJdbc in 查询,Spring namedParameterJdbcTemplate in查询
  5. Flutter基础—布局模型之层叠定位
  6. Java 8备受宠爱,HarmonyOS冲刺全球第三大操作系统,全民热议元宇宙|2021十大技术热词
  7. 两表查询很慢mysql_影响mysql性能的方面
  8. android jni示例_Android TextInputLayout示例
  9. 多线程抓取链家网数据
  10. 计算机英语感想1500,英语教学的心得体会1500字
  11. 自动代理老是自动打开上不了网的解决办法
  12. 查看系统架构是32位还是64位--用Enki学Linux系列(15)
  13. 【独立按键鼠标式的单击与双击】
  14. imshow 显示图像(Matlab)
  15. linux之pmap命令查看进程的地址空间和占用的内存
  16. 高手路过--菜鸟版系统安装==(图文安装教程)+(最新win7+win8系统)+系统工具
  17. PMP考试自学可以吗? 一分钟让你搞清楚
  18. China Science投稿模板
  19. BMZCTF:Fix it
  20. 帧数达不到144用144hz_怎么能一直吃鸡一直爽?144fps+144Hz告诉你结果“帧”香!...

热门文章

  1. java上传与下载文件_JavaWeb之实现文件上传与下载
  2. linux添加ec20,i.MX6添加EC204G模块GOBI驱动
  3. 自动驾驶需要哪些关键技术?
  4. CSDN发表文章后待审核的原因
  5. MySQL 后from多个表_SELECT * FROM多个表。 MySQL的
  6. vs2015 +qt basler相机添加pylon配置
  7. python nodemcu_NodeMCU-32S MicroPython固件的使用
  8. 常用激活函数(relu,glu,gelu,swish等)
  9. python玫瑰花数量的含义_玫瑰花数量的含义?玫瑰花个数的含义?
  10. linux性能监控命令—tsar命令