Jump to content
Changes to the Jaspersoft community edition download ×

How to directly print an iReport from ADF application?


mostafa.gado

Recommended Posts

Hello Jaspers,

 

I'm using a servlet to run my report ... here it is:

package view;
 
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
 
 
import java.math.BigDecimal;
 
import java.sql.Connection;
 
 
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
 
 
import javax.faces.context.FacesContext;
 
 
import javax.naming.Context;
import javax.naming.InitialContext;
 
 
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.HashPrintServiceAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
 
import javax.print.attribute.PrintServiceAttributeSet;
import javax.print.attribute.standard.MediaSizeName;
 
import javax.servlet.*;
import javax.servlet.http.*;
 
 
import javax.sql.DataSource;
 
 
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRPdfExporterParameter;
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimplePrintServiceExporterConfiguration;
 
 
public class ReportServlet extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
    
    
       public void init(ServletConfig config) throws ServletException {
           super.init(config);
       }
    
    
       public Connection getDataSourceConnection(String dataSourceName) throws Exception {
           Context ctx = new InitialContext();
           DataSource ds = (DataSource)ctx.lookup(dataSourceName);
           return ds.getConnection();
       }
       private Connection getConnection() throws Exception {
           return getDataSourceConnection("java:comp/env/jdbc//Hazardv3ConnDS");
       }
    
    
       public ServletContext getContext() {
           return (ServletContext)getFacesContext().getExternalContext().getContext();
       }
    
    
       public HttpServletResponse getResponse() {
           return (HttpServletResponse)getFacesContext().getExternalContext().getResponse();
       }
    
    
       public static FacesContext getFacesContext() {
           return FacesContext.getCurrentInstance();
       }
    
    
       public void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException,
                                                              IOException {
          // response.setContentType(CONTENT_TYPE);
          
          String var0 = ""; 
                 try { 
                     var0 = request.getParameter("classId"); 
                 } catch (Exception e) { 
                     e.printStackTrace(); 
                 } 
                 response.setContentType(CONTENT_TYPE); 
                 Map parameters = new HashMap(); 
                        parameters.put("format", "pdf"); 
                        parameters.put("WEBDIR", getServletContext().getRealPath("/")); 
                        parameters.put("REPORT_LOCALE", new Locale("ar")); 
                        parameters.put("salesOrderIdParam", BigDecimal.valueOf(705));
                        
           JRPdfExporter exporter = new JRPdfExporter();
           
                   
    //
    //                     parameters.put("classId", new String(var0));
                        Connection conn = null; 
                        InputStream is = null; 
                        try 
                        { 
                          conn = getConnection();
                          is = getServletContext().getResourceAsStream("/Reports/SalesOrderRep.jrxml"); 
                  
                  
                          response.setContentType("application/pdf"); 
                          response.addHeader("Content-Disposition", "inline; filename=Reciept.pdf"); 
                            
                          JasperDesign jasperDesign = JRXmlLoader.load(is); 
                          JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); 
                          JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);                     
                          JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream()); 
                           
                                    
                          conn.close(); 
                        } 
                        catch (Exception e) { 
                          e.printStackTrace(); 
                        } finally { 
                          closeConnection(conn); 
                          try { 
                              if(is !=null){ 
                                  is.close(); 
                              }                    
                              
                          } catch (Exception localException1) 
                          { 
                          } 
                        }
           PrintWriter out = response.getWriter();
           out.println("<html>");
           out.println("<head><title>ReportServlet</title></head>");
           out.println("<body>");
           out.println("<p>The servlet has received a GET. This is the reply.</p>");
           out.println("</body></html>");
           out.close();
       }
       protected static void closeConnection(Connection conn) { 
               try { 
                   if(conn !=null){ 
                       conn.close(); 
                   }            
               } catch (Exception ex) { 
                   //  System.out.println("Developer Msg : Exception in printReport1Servlet.closeConnection()"); 
               } 
           } 
}
==============================================================================================
 
Now this opens a PDF report in a different tab.
But what i need to do is to send it directly to printer.
How can i do this?
 
Thank you for your time
Gado
 
 
Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...