1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
package be.cpasdeliege.intranet.informatique.controler;
import java.io.ByteArrayOutputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.fop.apps.Driver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import be.cpasdeliege.intranet.informatique.model.domain.DomainInterface;
public class GenererPDF implements Controller {
DomainInterface metier = null;
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String type = request.getParameter("type");
String saut = request.getParameter("saut");
if(type == null || saut == null) {
response.sendRedirect((String)request.getSession().getAttribute("retour"));
} else {
ByteArrayOutputStream out = new ByteArrayOutputStream();
Driver driver = new Driver();
driver.setRenderer(Driver.RENDER_PDF);
driver.setOutputStream(out);
Result resultat = new SAXResult(driver.getContentHandler());
Source source;
Source style;
if(type.equals("alpha")) {
if(saut.equals("true")) {
source = new DOMSource(metier.getAnnuaireAlphabetiqueXML());
style = new StreamSource("c:\\fop\\cpas_alpha_saut.xsl");
} else {
source = new DOMSource(metier.getAnnuaireAlphabetiqueXML());
style = new StreamSource("c:\\fop\\cpas_alpha.xsl");
}
} else {
if(saut.equals("true")) {
source = new DOMSource(metier.getAnnuaireServiceXML());
style = new StreamSource("c:\\fop\\cpas_service_saut.xsl");
} else {
source = new DOMSource(metier.getAnnuaireServiceXML());
style = new StreamSource("c:\\fop\\cpas_service.xsl");
}
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(style);
transformer.transform(source, resultat);
response.setContentType("application/pdf");
response.setContentLength(out.size());
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(out.toByteArray());
outputStream.flush();
}
return null;
}
public DomainInterface getMetier() {
return metier;
}
public void setMetier(DomainInterface metier) {
this.metier = metier;
}
} |
Partager