mostafa.gado Posted March 5, 2017 Share Posted March 5, 2017 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 timeGado Link to comment Share on other sites More sharing options...
hozawa Posted March 5, 2017 Share Posted March 5, 2017 Have you tried generating an image of a page and the printing that image to a printer. Link to comment Share on other sites More sharing options...
mostafa.gado Posted March 6, 2017 Author Share Posted March 6, 2017 @hozawaNo I didn't how can i do this ? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now