package controleur; import Metier.Principale; import Metier.Livre; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import java.io.IOException; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class SauvegardePDF extends HttpServlet { public static final String VUE_RECHERCHE = "/Recherche.jsp"; public static final String CHAMP_REPERTOIRE = "repertoire"; public static final String ATT_CRITERE = "critere"; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.getServletContext().getRequestDispatcher(this.VUE_RECHERCHE).forward( request, response ); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { HttpSession session = request.getSession(); String nameFichier = request.getParameter(this.CHAMP_REPERTOIRE); String critere = (String) session.getAttribute(this.ATT_CRITERE); ArrayList<Livre> livres = new ArrayList<>(); livres = (ArrayList<Livre>) session.getAttribute("lastRecherche"); Principale controleur = Metier.MetierFactory.getPrincipale(); Document myPDF = new Document(PageSize.A4, 50, 50, 50, 50); response.setHeader("Content-Disposition", "attachment; filename=\"" + nameFichier + "\""); PdfWriter pdfWriter = PdfWriter.getInstance(myPDF, response.getOutputStream()); myPDF.open(); Paragraph paragraph = controleur.imprimerRecherche(livres, critere); myPDF.add(paragraph); myPDF.close(); response.getOutputStream().close(); this.getServletContext().getRequestDispatcher(this.VUE_RECHERCHE).forward( request, response ); } catch (DocumentException ex) { Logger.getLogger(SauvegardePDF.class.getName()).log(Level.SEVERE, null, ex); } } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }