根据html生成Word文件,包含图片

 

根据html内容生成word,并自动下载下来。使用到了itext-1.4.6.jar 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringReader;  
import java.net.URLEncoder;
import java.util.List; 

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

import org.springframework.web.util.HtmlUtils;

import com.lowagie.text.Document;  
import com.lowagie.text.PageSize;  
import com.lowagie.text.Paragraph;  
import com.lowagie.text.html.simpleparser.HTMLWorker;  
import com.lowagie.text.html.simpleparser.StyleSheet;  
import com.lowagie.text.rtf.RtfWriter2;  
import com.rimi.common.util.Common;

public class MSOfficeGeneratorUtils {
    
    public static void htmlToWord(HttpServletRequest request,HttpServletResponse response,String s){
           try {
            String docUrl=request.getSession().getServletContext().getRealPath("")+File.separator+"fileUpload"+File.separator;
            docUrl+=Common.getUUID()+".doc";
            OutputStream out = new FileOutputStream(docUrl);
            Document document = new Document(PageSize.A4);
            RtfWriter2.getInstance(document, out);
            document.open();
            Paragraph context = new Paragraph();
            //String value = HtmlUtils.htmlEscape(s);  
            //System.out.println(s);
            // Image img = Image.getInstance("D:\\图片\\2.jpg");  
            // img.setAbsolutePosition(0, 0);//  
            // document.add(img);  
            StyleSheet ss = new StyleSheet();
            List htmlList = HTMLWorker.parseToList(new StringReader(s), ss);
            for (int i = 0; i < htmlList.size(); i++) {
                com.lowagie.text.Element e = (com.lowagie.text.Element) htmlList
                        .get(i);
                context.add(e);
            }
            document.add(context);
            document.close();
            out.close();
            InputStream inStream = new FileInputStream(docUrl);
            response.reset();
            response.setContentType("bin");
            response.addHeader(
                    "Content-Disposition",
                    "attachment; filename=\""
                            + URLEncoder.encode("试题文档.doc",
                                    "UTF-8") + "\"");
            // 循环取出流中的数据
            byte[] b = new byte[512];
            int len;
            response.getOutputStream().flush();
            while ((len = inStream.read(b)) > 0) {
                response.getOutputStream().write(b, 0, len);
            }
            inStream.close();
            //System.out.println("ok");
        } catch (Exception e) {
            e.printStackTrace();
        }    
    }
}

 

根据html生成Word文件,包含图片,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。