importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.StringReader;importjava.net.URLEncoder;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.util.HtmlUtils;importcom.lowagie.text.Document;importcom.lowagie.text.PageSize;importcom.lowagie.text.Paragraph;importcom.lowagie.text.html.simpleparser.HTMLWorker;importcom.lowagie.text.html.simpleparser.StyleSheet;importcom.lowagie.text.rtf.RtfWriter2;importcom.rimi.common.util.Common;public classMSOfficeGeneratorUtils {public static voidhtmlToWord(HttpServletRequest request,HttpServletResponse response,String s){try{
String docUrl=request.getSession().getServletContext().getRealPath("")+File.separator+"fileUpload"+File.separator;
docUrl+=Common.getUUID()+".doc";
OutputStream out= newFileOutputStream(docUrl);
Document document= newDocument(PageSize.A4);
RtfWriter2.getInstance(document, out);
document.open();
Paragraph context= newParagraph();//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 = newStyleSheet();
List htmlList= HTMLWorker.parseToList(newStringReader(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= newFileInputStream(docUrl);
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition","attachment; filename=""
+ URLEncoder.encode("试题文档.doc","UTF-8") + """);//循环取出流中的数据
byte[] b = new byte[512];intlen;
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();
}
}
}