Java 使用Docx4j实现word文档Docx格式转Doc格式
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格式相关推荐
- 使用java将word文档docx,doc(包含图形,文本框)完美转换成所有格式图片(pdf,png,gif,jpeg等等)
使用java将word文档docx,doc(包含图形,文本框,图片等)完美转换成所有格式图片(pdf,png,gif,jpeg等等)下文中附带代码,效果图等 思路 使用到的包 实现代码 效果图: 思路 ...
- (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇
(一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...
- docx4j操作word文档之生成页码、合并多个文档
docx4j操作word文档: 动态生成表格行数并填充数据 单元格内填充图片 合并多个word文档(包含页码,纸张方向等等) 1.动态生成表格行数并填充数据 首先创建模板文件.docx,如图: 代码如 ...
- (五)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之word文件合并[支持多文件]
(五).JAVA基于OPENXML的word文档插入.合并.替换操作系列之word文件合并[支持多文件] 二.word合并的多种方案简单比较 三.基于Open Xml WordprocessingML ...
- java openxml 操作 word,(三)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之html转word...
(三).JAVA基于OPENXML的word文档插入.合并.替换操作系列之html转word 系列笔记传送门 富文本转word文档 准备待转换内容 内容清理与格式化 转换成word文档 输出结果展示 ...
- java重新组合_Java 合并Word文档
在日常工作中,难免会遇到需要将多个Word文档合并到一个文档中,对其进行重新整理的情况,为了能帮助大家高效快速的完成这个操作,接下来本文就将介绍两种在Java程序中合并Word文档的方法. 方法一:如 ...
- Java使用poi-tl生成word文档
Java使用poi-tl生成word文档,可以对模板文件进行文本替换,图片.表格.超链接添加.图表处理等.大概的说明都在代码注释里,只有一个地方需要注意,就是图表的替换,占位符{{barChart}} ...
- Docx4j替换word文档的页眉
Docx4j替换word文档的页眉 目前国内关于Docx4j的帖子少的可怜,看来看去都是那几个.本人使用Docx4j也有一段时间,虽然还有许多东西没了解全,但在这边想分享我的学习经验,互相交流,也方便 ...
- Java实现在线打开word文档并强制留痕/留下痕迹
前言: 在OA系统中,时不时的都会伴随着文档流转过程.比如有的系统中会有领导审批的流程,那么在A领导审批完成后,他的审批痕迹能不能强制保留下来,以供下一步处理文档的专员清晰地参考呢? 我们知道,在本地 ...
最新文章
- CAS(compareAndSwap)原理
- Android检查是否自启动,android – 如何检查我的应用程序是否是默认启动器
- flex中自定义皮肤的按钮制作
- springJdbc in 查询,Spring namedParameterJdbcTemplate in查询
- Flutter基础—布局模型之层叠定位
- Java 8备受宠爱,HarmonyOS冲刺全球第三大操作系统,全民热议元宇宙|2021十大技术热词
- 两表查询很慢mysql_影响mysql性能的方面
- android jni示例_Android TextInputLayout示例
- 多线程抓取链家网数据
- 计算机英语感想1500,英语教学的心得体会1500字
- 自动代理老是自动打开上不了网的解决办法
- 查看系统架构是32位还是64位--用Enki学Linux系列(15)
- 【独立按键鼠标式的单击与双击】
- imshow 显示图像(Matlab)
- linux之pmap命令查看进程的地址空间和占用的内存
- 高手路过--菜鸟版系统安装==(图文安装教程)+(最新win7+win8系统)+系统工具
- PMP考试自学可以吗? 一分钟让你搞清楚
- China Science投稿模板
- BMZCTF:Fix it
- 帧数达不到144用144hz_怎么能一直吃鸡一直爽?144fps+144Hz告诉你结果“帧”香!...
热门文章
- java上传与下载文件_JavaWeb之实现文件上传与下载
- linux添加ec20,i.MX6添加EC204G模块GOBI驱动
- 自动驾驶需要哪些关键技术?
- CSDN发表文章后待审核的原因
- MySQL 后from多个表_SELECT * FROM多个表。 MySQL的
- vs2015 +qt basler相机添加pylon配置
- python nodemcu_NodeMCU-32S MicroPython固件的使用
- 常用激活函数(relu,glu,gelu,swish等)
- python玫瑰花数量的含义_玫瑰花数量的含义?玫瑰花个数的含义?
- linux性能监控命令—tsar命令