• 根据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();
            }    
        }
    }
  • 相关阅读:
    Archlinux笔记本安装手记
    linux下activemq安装与配置activemq-5.15.2
    在 CentOS7 上安装 Zookeeper-3.4.9 服务
    VMware虚拟化kvm安装部署总结
    打印机故障总结
    fluentd安装和配置,收集docker日志
    使用Python和AWK两种方式实现文本处理的长拼接案例
    MySQL数据库使用xtrabackup备份实现小例子
    shell脚本实现ftp上传下载文件
    Linux系统中创建大文件,并作为文件系统使用
  • 原文地址:https://www.cnblogs.com/libaoting/p/itext.html
Copyright © 2020-2023  润新知