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 = (filePath));
}catch(IOException e){
e.printStackTrace();
}
InputStream inputStream =new ByteArrayInputStream(content);
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(inputStream);
// 获取项⽬路径
String path = Property("user.dir");
// 先将docx转换成xml,然后再转换成doc,处理过程中依次⽣成临时xml和doc⽂件,
// 处理完后xml⽂件⾃动删除,可读取临时doc⽂件字节流存库后将临时doc⽂件删除
File outFileXml =new File(path ,"l");
Docx4J.save(wordMLPackage, outFileXml, Docx4J.FLAG_SAVE_FLAT_XML);
File outFileDoc =new File(path +"tempFileTwo.doc");
FileInputStream fileInputStream =new FileInputStream(outFileDoc);
/
/ 如果只需获取⽂件流,读取后,删除临时doc, 直接return
byte[] resultOut = pyToByteArray(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 = ad(buffer))!=-1){
索尼xml文件可以删除吗fos.write(buffer,0, r);
}
fileInputStream .close();
2、使⽤的依赖
<dependency>
<!--⽀持插⼊图⽚-->
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.3.1</version>
</dependency>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论