package com.lu.servlet;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.xhtmlrenderer.pdf.ITextRenderer;
/**
* Servlet implementation class TestServlet
*/
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ht = new String(request.getParameter("html").getBytes("iso-8859-1"),"utf-8");
System.out.println(ht);
// img元素 一定要加上反斜杠
if(ht.contains("<img src=\"images/im.jpg\">")){
ht=ht.replaceFirst("<img src=\"images/im.jpg\">","<img src=\"images/im.jpg\"></img>");
}
ServletContext sc = request.getSession().getServletContext();
String path = sc.getRealPath("");
path = path.replaceAll("\\\\", "/");
try {
ITextRenderer renderer = new ITextRenderer();
StringBuffer html = new StringBuffer();
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">")
.append("<head>")
.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
.append("<style type='text/css'> b { color: green; } </style>")
.append("</head>")
.append("<body>")
.append(ht);
html.append("</body></html>");
renderer.setDocumentFromString(html.toString());
renderer.getSharedContext().setBaseURL("file:/"+path+"/images");
renderer.layout();
String outFile = "C:/Users/卢亮/Desktop/test.pdf";
OutputStream os = new FileOutputStream(outFile);
renderer.createPDF(os);
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}