docx4j doc转html,11、docx4j生成文档格式转换

http://www.chendd.cn/information/viewInformation/other/260.a

在继本篇文章后,关于docx4j的知识点要完结了,个人认为已经实现了企业级应用中的绝大多数的高端应用的具体实现,另外更多的一些具体实现不准备继续下去了,如果后面有需求实现了再补充。

关于docx文档的转换,常用到的我觉得是这三种:docx转换为doc、docx转换为html、docx转换为pdf,就这三种,本例也是将docx4j中提供的这三种给整理了一下,源文件是之前写的一份word文档《我的增量补丁整理软件》(介绍一款增量补丁自动化的软件实现),文中内容含有不同格式的字体、样式、文本缩进、间距、颜色、图片等系列相关的内容,转换后的效果也是比较好的,参考输出的内容如下:

转换为pdf格式,在转换时也报了一些错误,分析代码发现它去网络上获取东西,之前一直以为是这里的网络访问问题,后来将docx4j提供的所有的jar引入后,就可以访问了,所以并不是这个网络的问题,如下:

1539587510304015651.png.image

转换为doc格式

1539587524335005426.png.image

转换为html格式

1539587538335080544.png.image

代码参考

package cn.chendd.docx4j.examples;

import java.io.File;

import java.io.FileOutputStream;

import org.apache.commons.io.FileUtils;

import org.docx4j.Docx4J;

import org.docx4j.convert.out.HTMLSettings;

import org.docx4j.openpackaging.packages.WordprocessingMLPackage;

/**

* 文档格式转换

* @author chendd

*

*/

public class ConvertTest {

static String templatePath = System.getProperty("user.dir") + "/template/我的增量补丁整理软件.docx";

public static void main(String[] args) throws Exception {

//将docx文件转换为pdf文档

convertDocx2Pdf();

//将docx文件转换为html文档

//    convertDocx2Html();

//将docx转换为doc文档

//    convertDocx2Doc();

}

private static void convertDocx2Doc() throws Exception {

//将docx转换为符合doc格式规范的xml文档,再由xml更改后缀名为doc的方式达到docx转换doc格式的目的

File templateFile = new File(templatePath);

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(templateFile);

File outFile = new File(templateFile.getParent() + "/out/" , "我的增量补丁整理软件.xml");

Docx4J.save(wordMLPackage, outFile, Docx4J.FLAG_SAVE_FLAT_XML);//FLAG_SAVE_ZIP_FILE

outFile.renameTo(new File(outFile.getParentFile() , "我的增量补丁整理软件.doc"));

}

private static void convertDocx2Html() throws Exception {

File templateFile = new File(templatePath);

String name = "我的增量补丁整理软件.html";

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(templateFile);

HTMLSettings htmlSettings = Docx4J.createHTMLSettings();

String folder = templateFile.getParent() + "/out/";

htmlSettings.setImageDirPath(folder + name + "_files");//生成的html文件与图片文件夹之类的放置同一个目录下

htmlSettings.setImageTargetUri(name + "_files");

htmlSettings.setWmlPackage(wordMLPackage);

File outFile = new File(folder , name);

Docx4J.toHTML(htmlSettings, new FileOutputStream(outFile), Docx4J.FLAG_NONE);

}

//转换为Pdf文件

private static void convertDocx2Pdf() throws Exception {

File templateFile = new File(templatePath);

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(templateFile);

File outFile = new File(templateFile.getParent() + "/out/" , "我的增量补丁整理软件.pdf");

Docx4J.toPDF(wordMLPackage, new FileOutputStream(outFile));

}

}

相关下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值