Java Tutorial/PDF/Servlet — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 08:21, 1 июня 2010
Pdf and servlet
<source lang="java">
import java.io.IOException; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Paragraph; import com.lowagie.text.html.HtmlWriter; import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.rtf.RtfWriter2;
public class HelloWorldServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String presentationtype = request.getParameter("presentationtype"); Document document = new Document(); try { if ("pdf".equals(presentationtype)) { response.setContentType("application/pdf"); PdfWriter.getInstance(document, response.getOutputStream()); } else if ("html".equals(presentationtype)) { response.setContentType("text/html"); HtmlWriter.getInstance(document, response.getOutputStream()); } else if ("rtf".equals(presentationtype)) { response.setContentType("text/rtf"); RtfWriter2.getInstance(document, response.getOutputStream()); } document.open(); document.add(new Paragraph("Hello World")); document.add(new Paragraph(new Date().toString())); } catch (DocumentException de) { de.printStackTrace(); System.err.println("document: " + de.getMessage()); } document.close(); }
}</source>
Set ContentType and transfer Pdf document to client
<source lang="java">
import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class OutSimplePdf extends HttpServlet {
public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { makePdf(request, response, "GET"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { makePdf(request, response, "POST"); } public void makePdf(HttpServletRequest request, HttpServletResponse response, String methodGetPost) throws ServletException, IOException { try { String msg = "your message"; Document document = new Document(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter.getInstance(document, baos); document.open(); document.add(new Paragraph(msg)); document.add(Chunk.NEWLINE); document.add(new Paragraph("a paragraph")); document.close(); response.setHeader("Expires", "0"); response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setContentType("application/pdf"); response.setContentLength(baos.size()); ServletOutputStream out = response.getOutputStream(); baos.writeTo(out); out.flush(); } catch (Exception e2) { System.out.println("Error in " + getClass().getName() + "\n" + e2); } } public void destroy() { }
}</source>