将html导出word

来源:互联网 发布:centos双系统安装教程 编辑:程序博客网 时间:2024/05/20 14:15
首先需要下载    aspose-words-15.8.0-jdk16.jar(网盘分享http://pan.baidu.com/s/1qXKL18K
和破解文件        license.xml
内容为
<License>
  <Data>
    <Products>
      <Product>Aspose.Total for Java</Product>
      <Product>Aspose.Words for Java</Product>
    </Products>
    <EditionType>Enterprise</EditionType>
    <SubscriptionExpiry>20991231</SubscriptionExpiry>
    <LicenseExpiry>20991231</LicenseExpiry>
    <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
  </Data>
 <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License> 
 

创建java类
AsposeUtil.java
package ygkj.sys.common.util;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URLEncoder;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import com.aspose.words.SaveOptions;

public class AsposeUtil {

public static boolean getAsposeWordLicense(){
    boolean result = false;
    try {
        InputStream is =Thread.currentThread().getContextClassLoader().getResourceAsStream("aspose/license.xml"); // Context.getResourceAsStream("aspose-license.xml");
        License aposeLic = new License();
        aposeLic.setLicense(is);
        result = true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
//2:制作生成.doc格式word文档

/**
 * html to word
 * @param body 要转换成word的 源html文档
 * @param outputStream 输出流,可传入responseOutputStream
 * @return 输出流
 */
@SuppressWarnings("resource")
public static void HtmlToWord(String docFileName,String body,HttpServletRequest request,HttpServletResponse response){
    if(!AsposeUtil.getAsposeWordLicense()){
    }
//    OutputStream out = null;
    try {
        //out = new FileOutputStream()
        //将HTML中的img标签的src全部转换为可访问到的地址(个人业务逻辑)
        //body = parseImgUrlFromBody(body)
        //这里是加入css样式,以引入的方式
//     String filePath = AsposeUtil.class.getClassLoader().getResource("../../").getFile().toString();
    String filePath = request.getSession().getServletContext().getRealPath("");
    System.out.println(filePath);
        String css1 = "<link rel='stylesheet' href='"+filePath+"/styles/styles/common.css' type='text/css' />";
        String css2 = "<link rel='stylesheet' href='"+filePath+"/styles/styles/htmlToWord.css' type='text/css' />";
        //拼接完整的HTML文档
        String html = "<!DOCTYPE html> <html> <head> "
        +css1+css2
        +" </head> <body><div class='editor-style'>" + body + "</div></body> </html>";
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        builder.insertHtml(html);
//        doc.save(out, SaveOptions.createSaveOptions(SaveFormat.DOC));//生成doc文件
        response.setContentType("application/msword");
response.setHeader("Content-Disposition", "attachment;filename="
+docFileName+".doc");
//FileOutputStream outputStream = new FileOutputStream(filePath+"/htmlToWord/"+docFileName+".doc");
//doc.save(outputStream, SaveFormat.DOC);
//outputStream.flush();
//response.flushBuffer();
//outputStream.close();
//
//InputStream in = new FileInputStream(filePath+"/htmlToWord/"+docFileName+".doc");
//
//byte[] buffer = new byte[1024];
//int len = 0;
//
//while ((len = in.read(buffer)) != -1) {
//response.getOutputStream().write(buffer, 0, len);
//}
//in.close();
ServletOutputStream outputStream2 = response.getOutputStream();
        doc.save(outputStream2, SaveOptions.createSaveOptions(SaveFormat.DOC));
        outputStream2.flush();
        outputStream2.close();
        
    }catch (Exception e){
    }
}
}


controller类
@RequestMapping("toWord")
public void toWord(String docFileName,String body,HttpServletRequest request, HttpServletResponse response) throws IOException{
AsposeUtil.HtmlToWord(docFileName,body, request, response);
}
 
0 0
原创粉丝点击