根据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文件,包含图片

时间: 2024-11-05 22:06:49

根据html生成Word文件,包含图片的相关文章

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

package cn.com.wzf; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.StringReader; import java.util.List; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lo

java根据模板生成word文件

原文:java根据模板生成word文件 源代码下载地址:http://www.zuidaima.com/share/1550463664884736.htm AVA生成word模板程序步骤 1. 将freemarker-2.3.13.jar复制到项目\WEB-INF\lib目录下 2. 编辑模板文件 (1) 将DOC文件另存为xml文件,将xml文件在eclipse环境下打开,右键选"源"→"格式".此处注意xml文件属性是UTF-8. (2) 将xml文件中需要替

C#操作Word的+ CKEditor 輸出成Word文件(包含圖案上傳)

C#操作Word 参考博文: C#操作word类文件 https://www.cnblogs.com/walking/p/3571068.html C#中的Office操作专栏(21) http://blog.csdn.net/lzhui1987/article/category/6511234 c# 操作Word总结 http://www.cnblogs.com/eye-like/p/4121219.html C#操作WORD公用类 http://blog.csdn.net/liu793185

JSP生成word文件

1.jsp生成word文件,直接修改jsp格式: <%@ page contentType="application/vnd.ms-word;charset=GB2312"%> <%@ pagepageEncoding="GB2312"%> <% String fileName ="word.doc"; byte[] bt =fileName.getBytes("GB2312"); String

利用html模板生成Word文件(服务器端不需要安装Word)

利用html模板生成Word文件(服务器端不需要安装Word) 由于管理的原因,不能在服务器上安装Office相关组件,所以只能采用客户端读取Html模板,后台对模板中标记的字段数据替换并返回给客户端的方法来实现,经过测试这种方法也是一种不错的选择! 首先自己写一个html网页模板,代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>

FreeMarker之生成复杂word(包含图片) (二)

上一篇博客中讲FreeMarker做了简单的介绍,这篇博客就来使用它来完成两个例子. 在项目中使用它完成的功能是按照固定的模板将数据导出到Word.比如台账.在完成后将处理过程按照台账的要求导出,有时程序中需要实现生成标准Word文档,要求能够打印,并且保持页面样式不变. 这个功能就是由XML+Freemarder来实现的,Word从2003开始支持XML格式,大致的步骤:用office2003或者以上的版本编辑好 word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用

freemarker根据模板生成word文件实现导出功能

一.准备工作 1.创建一个03的word文档,动态的数据用占位符标志占位(如testname).然后另存为word2003的xml文件. 2.格式化xml文件,占位符的位置用${testname}代替,若有多行格式相同数据等,用List循环. 注意:不要用Eclipse工具去格式化xml文件(会导致导出的word文件不能用office软件打开,但是PDF能打开,估计是pdf的容错率高于office),推荐使用firstObject工具格式化xml文件. 3.将xml文件(也可以改成ftl格式)存

windows&amp;lunix下node.js实现模板化生成word文件

最近在做了一个小程序!里面有个功能就是根据用户提交的数据,自动生成一份word文档返回给用户.我也是第一次做这功能,大概思路就是先自己弄一份word模板,后台接受小程序发过来的数据,再根据这些数据将相应内容写入到相应位置,再将生成word文档的地址返回给前台,前台再根据返回的URL访问服务器的上对应资源. 由于我的后台用的是node.js  毕竟算是新生语言,插件还是比较少.所以在这里总结一下,以便以后再次用到方便查看. 在windows上动态生成模板word文档. 在windows上实现这个倒

Aspose.words Java基于模板生成word之循环图片

1.新建一个word文档 2.给插入图片的地方设置书签 3,设置书签 二,项目 1,2步的引入依赖以及加载授权文件同上一篇 3,获取图片路径插入到word中并生成新的word文档 新文档中,每行显示两张图片 public static void main(String[] args) throws Exception { // 验证License if (!getLicense()) { return; } //模板word String template = "E:\\test\\temp.d