Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2015, 08:40
Avatar de ipraetoriux
ipraetoriux
 
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Generar PDF con un servlet

Una librería muy fácil de usar y con mucha info por todos lados es iText.

De acá la podes descargar: http://sourceforge.net/projects/itext/

Acá tenes un ejemplo de como usarla: http://www.ibm.com/developerworks/op...ry/os-javapdf/

Tambien podes hacerlo directamente sin libreria de esta forma:

Código Java:
Ver original
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.OutputStream;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. public class TestPdfServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
  11.  
  12.     private static final long serialVersionUID = 1L;
  13.  
  14.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  15.         performTask(request, response);
  16.     }
  17.  
  18.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
  19.             IOException {
  20.         performTask(request, response);
  21.     }
  22.  
  23.     private void performTask(HttpServletRequest request, HttpServletResponse response) throws ServletException,
  24.             IOException {
  25.  
  26.         String pdfFileName = "pdf-test.pdf";
  27.         String contextPath = getServletContext().getRealPath(File.separator);
  28.         File pdfFile = new File(contextPath + pdfFileName);
  29.  
  30.         response.setContentType("application/pdf");
  31.         response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);
  32.         response.setContentLength((int) pdfFile.length());
  33.  
  34.         FileInputStream fileInputStream = new FileInputStream(pdfFile);
  35.         OutputStream responseOutputStream = response.getOutputStream();
  36.         int bytes;
  37.         while ((bytes = fileInputStream.read()) != -1) {
  38.             responseOutputStream.write(bytes);
  39.         }
  40.  
  41.     }
  42.  
  43. }

Última edición por ipraetoriux; 27/10/2015 a las 08:47