10748

Error when printing jasper report using JasperPrintManager.printReport(print, true);

This below is my code:-

Map parameters = new HashMap(); parameters.put("printer", "1010111"); FileInputStream file = new FileInputStream(new File(getServletContext().getRealPath("/Reports/report1.jasper"))); JasperPrint print = JasperFillManager.fillReport(file, parameters, new JRBeanCollectionDataSource(reports)); JasperPrintManager.printReport(print, true);

I am trying to print the jasper page. I don't have any trouble when using "JasperPrintManager.printReport(print, false)" but when i use "true", I get the following error.

Severe: net.sf.jasperreports.engine.JRException: Error printing report. at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:214) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:242) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:129) at net.sf.jasperreports.engine.JasperPrintManager.printReport(JasperPrintManager.java:326) at Reports.Closing_Report_Report.doGet(Closing_Report_Report.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:745) Caused by: java.awt.HeadlessException at sun.awt.windows.WPrinterJob.printDialog(WPrinterJob.java:576) at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:198) ... 33 more

Answer1:

What is important to understand is that it is not the browser that is printing with

JasperPrintManager.printReport(print, false)

Its actually the server that is printing to your preferred printer, hence a web user will always print on the server printer (not on his own printer).

That's why

JasperPrintManager.printReport(print, true)

does not work, you can't tell the server to open the PrintDialog. This call is used in desktop application.

It's impossibile to print directly on client printer (excluding the development of browser plugin that needs to be installed on client's browser). If this was possibile with out special plugin's our printers would be printing spam all day.

The closes you can get is to export the report to the browser and then automatically open the print dialog.

This is an example exporting to pdf: Automatically open the printer dialog after providing PDF download

Recommend

  • Java: Method.invoke (this, args) NullPointerException
  • Is it possible to have jar in a parent pom file?
  • Causality map changing when order of the variables are changed
  • Which jars do I need in order to avoid “NoClassDefFoundError: com/sun/facelets/tag/jsf/ComponentHand
  • R: Constructing correlated variables
  • randomForest in R object not found error
  • Using Tomcat to debug in Intellij Idea creates two deployments of Web App
  • How to find correlation coefficients in a loop?
  • tm.plugin.sentiment issue. Error: could not find function “DMetaData”
  • Show correlation index in ggduo scatterplot matrix
  • Losing asp.net session in popup. Only in IE and only for some users
  • jdbc insert into database with auto increment field
  • Calculate Correlations of Pairs of Columns in a Data Frame in R
  • Is there any way to generate uncorrelated random variables using Python?
  • pairs() move labels to sides of scatter plot
  • org.apache.catalina.LifecycleException when trying to start Glassfish server with Eclipse
  • keep var format as matrix after removing values
  • java.lang.NoClassDefFoundError: org/springframework/beans/factory/Aware
  • The API package 'channel' or call 'CreateChannel()' was not found
  • Can we share CDI @ApplicationScoped bean instance accross web application in the same EAR?
  • How to shutdown a single application in Tomcat?
  • How to silently drop a request in Tomcat?
  • Liferay Portlet Taglib Cast Exception
  • How is user.dir configured for Tomcat servlets?
  • java.io.EOFException when sending serialized data to a servlet
  • Phonegap GA plugin not working
  • Glassfish - java.lang.NoClassDefFoundError
  • File extension of zlib zipped html page?
  • iOS Cordova first plugin - plugin.xml to inject a feature
  • Salesforce Different WSDL files and when to use
  • Specifying Castle WCF Integration Facility Endpoint Behavior per Endpoint
  • Problem deserializing objects from cache on MyBatis 3/Java
  • Read a local file using javascript
  • ImageMagick, replace semi-transparent white with opaque white
  • Cannot connect to cassandra from Spark
  • Is there a amazon webstore API for customers?
  • Cross-Platform Protobuf Serialization
  • Alternatives to the OPTIONAL fallback SPARQL pattern?
  • Circular dependency while pushing http interceptor
  • Angular 2 constructor injection vs direct access