@SuppressWarnings("serial") @WebServlet(description = "Retourne le pdf des tours de services du mois choisi", urlPatterns = { "*.xhtml" }) @FieldDefaults(level = AccessLevel.PRIVATE) public class GenererPDFServlet extends HttpServlet { String chemin = "#{resource['pdf:planning.pdf']}"; FacadeTourDeService facadeTourDeService; List listeTourService = facadeTourDeService.getDao().readAll(); /** * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse * response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Document pdf = this.genererPDF(listeTourService); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } response.setContentType("application/octet-stream"); OutputStream out = response.getOutputStream(); } private Document genererPDF(List lstTour) throws DocumentException, IOException { FileOutputStream fos = this.getFileOutputStream(chemin); Document document = this.getDocument(fos); document.add(new Paragraph(this.genererLignesPDF(lstTour))); document.close(); fos.close(); return document; } private FileOutputStream getFileOutputStream(String chemin) throws FileNotFoundException { File file = new File(chemin); FileOutputStream fos = new FileOutputStream(file); return fos; } private Document getDocument(FileOutputStream fos) throws DocumentException { Document document = new Document(); PdfWriter.getInstance(document, fos); document.open(); return document; } private String genererLignesPDF(List lstTourDeService) { StringBuilder sb = new StringBuilder(); for (TourDeService tourDeService : lstTourDeService) { sb.append(tourDeService.getPersonnel().getNom()); sb.append(": "); sb.append(tourDeService.getTypeTourService()); sb.append("du "); sb.append(tourDeService.getDateHeureDebut()); sb.append("au "); sb.append(tourDeService.getDateHeureFin()); sb.append("\n"); } return sb.toString(); } }