1 25 package org.ofbiz.webapp.view; 26 27 import java.io.ByteArrayOutputStream ; 28 import java.io.IOException ; 29 import java.io.StringWriter ; 30 import java.io.Writer ; 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 34 import org.ofbiz.base.util.Debug; 35 import org.ofbiz.base.util.GeneralException; 36 37 45 public class FopPdfViewHandler extends JPublishViewHandler { 46 47 public static final String module = FopPdfViewHandler.class.getName(); 48 49 52 public void render(String name, String page, String info, String contentType, String encoding, HttpServletRequest request, HttpServletResponse response) throws ViewHandlerException { 53 Writer writer = new StringWriter (); 55 try { 56 wrapper.render(page, request, response, writer, null, false); 57 } catch (Throwable t) { 58 throw new ViewHandlerException("Problems with the response writer/output stream", t); 59 } 60 if (Debug.verboseOn()) { 61 Debug.logVerbose("XSL-FO : " + writer.toString(), module); 62 } 63 64 ByteArrayOutputStream out = null; 66 try { 67 out = FopRenderer.render(writer); 68 } catch (GeneralException e) { 69 throw new ViewHandlerException(e.getMessage(), e.getNested()); 70 } 71 72 response.setContentType("application/pdf"); 74 response.setContentLength(out.size()); 75 76 try { 78 out.writeTo(response.getOutputStream()); 79 response.getOutputStream().flush(); 80 } catch (IOException e) { 81 throw new ViewHandlerException("Unable write to browser OutputStream", e); 82 } 83 } 84 } 85 | Popular Tags |