需要的包 cobra.jar js.jar
private boolean creareJsp(String jspName,String title,boolean isYDYW,String yuanwen,String zhengwen,String topImg,Date date){
String savePath = ServletActionContext.getServletContext().getRealPath("/");
String path = topImg.substring(topImg.indexOf("/", 1));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateFormat = sdf.format(date);
String filePath = ServletActionContext.getServletContext().getRealPath("wxpage") + "/" + jspName;
OutputStreamWriter fw = null;
try {
fw = new OutputStreamWriter(new FileOutputStream(filePath),"UTF-8");
StringBuffer sb = new StringBuffer();
// sb.append("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\r\n");
sb.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n");
sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n");
sb.append("<head>\r\n");
sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n");
sb.append("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;\" />\r\n");
sb.append("<meta name=\"format-detection\" content=\"telephone=no\" />\r\n");
sb.append("<title>").append(title).append("</title>\r\n");
//sb.append("<link href=\"css/use.css\" rel=\"stylesheet\" type=\"text/css\" />\r\n");
sb.append("<style type=\"text/css\">\r\n");
sb.append("<!--\r\n");
sb.append("#biaoti {\r\n");
sb.append("width:70%;\r\n");
sb.append("max-width:540px;\r\n");
sb.append("font-family: \"微软雅黑\";\r\n");
sb.append("font-size:20px;\r\n");
sb.append("text-align:left;\r\n");
sb.append("padding-top:5px;\r\n");
sb.append("}\r\n");
sb.append("#riqi{\r\n");
sb.append("width:70%;\r\n");
sb.append("max-width:540px;\r\n");
sb.append("font-family: \"微软雅黑\";\r\n");
sb.append("font-size:12px;\r\n");
sb.append("text-align:left;\r\n");
sb.append("padding-top:5px;\r\n");
sb.append("color:#CCC;\r\n");
sb.append("height:10px;\r\n");
sb.append("}\r\n");
sb.append("a:link {\r\n");
sb.append("font-size:13px;\r\n");
sb.append("text-decoration:none;\r\n");
sb.append("font-family: \"微软雅黑\";\r\n");
sb.append("color:#667B99;\r\n");
sb.append("}\r\n");
sb.append("a:hover {\r\n");
sb.append("font-size:13px;\r\n");
sb.append("color:#667B99;\r\n");
sb.append("text-decoration:underline;\r\n");
sb.append("}\r\n");
sb.append("-->\r\n");
sb.append("</style>\r\n");
sb.append("</head>\r\n");
sb.append("<body leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" bgcolor=\"#FFFFFF\" style=\"padding:10px 10px 2px 10px;\">\r\n");
sb.append("<div class=\"biaoti\" id=\"biaoti\">").append(title).append("</div>\r\n");
sb.append("<div class=\"riqi\" id=\"riqi\">").append(dateFormat).append("</div>\r\n");
BufferedImage sourceImg = ImageIO.read(new FileInputStream(savePath+path));
if(sourceImg.getWidth()>600){
sb.append("<p><img alt=\"\" src=\"").append(topImg).append("\" style=\"width:100%;max-width:640px;\" /></p>");
}else{
sb.append("<p><img alt=\"\" src=\"").append(topImg).append("\" style=\"width:100%;max-width:" + sourceImg.getWidth() + "px;\"/></p>");
}
zhengwen = parseHtml(zhengwen);
sb.append(zhengwen);
if(isYDYW){
sb.append("<p><a href=\"").append(yuanwen).append("\"").append(">").append("阅读原文</a></p>");
}
sb.append("</body>\r\n");
sb.append("</html>");
fw.write(sb.toString());
} catch (Exception e) {
logger.error("生成jsp失败", e);
return false;
} finally {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// boolean result = copeFile(filePath);
return true;
}
private String parseHtml(String htmlcontent) throws SAXException, IOException{
Reader reader = new StringReader(htmlcontent);
InputSourceImpl inputSource = new InputSourceImpl(reader,
"");
UserAgentContext uacontext = new SimpleUserAgentContext();
DocumentBuilderImpl builder = new DocumentBuilderImpl(uacontext);
Document d = builder.parse(inputSource);
HTMLDocumentImpl document = (HTMLDocumentImpl) d;
NodeList nl=document.getElementsByTagName("img");
for (int i = 0; i < nl.getLength(); i++) {
HTMLImageElement img=(HTMLImageElement) nl.item(i);
if(img.hasAttribute("width")){
img.removeAttribute("width");
}
String savePath = ServletActionContext.getServletContext().getRealPath("/");
String path = img.getSrc().substring(img.getSrc().indexOf("/", 1));
BufferedImage sourceImg = ImageIO.read(new FileInputStream(savePath + path));
if(sourceImg.getWidth()>600){
img.setAttribute("style", "width:100%;max-width:640px;");
}else{
img.setAttribute("style", "width:100%;max-width:" + sourceImg.getWidth() + "px;");
}
}
return document.getInnerHTML();
}