mostafa.gado Posted March 5, 2017 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
hozawa Posted March 5, 2017 Posted March 5, 2017 Have you tried generating an image of a page and the printing that image to a printer.
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