Jump to content
We've recently updated our Privacy Statement, available here ×

how to print a report just by client user


ktrinad

Recommended Posts

By: alex - alexmywish

how to print a report just by client user

2004-06-18 22:47

hi,all.

I have created the report.

and client user can browse the report 2.

but I wanna the client user can print the report by himself,and not just print the report by IE .And the printer is not installed in the server.

Here is my plan, but it doesn`t work,can anyone help me?

I user servlet and applet,the servlet create the report and the applet control the print.

here is the code:

Jrprintservlet.java

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import dori.jasper.engine.*;

import dori.jasper.engine.util.*;

import dori.jasper.engine.export.*;

 

public class JRPrintServlet extends HttpServlet {

java.sql.Connection sqlConn;

java.sql.Statement sqlStmt;

java.sql.ResultSet sqlRst;

//regiester jdbc driver

// Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

//connect to the database

 

public void service(

HttpServletRequest request,

HttpServletResponse response

) throws IOException, ServletException{

Map parameters = new HashMap();

try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

sqlConn=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test;SelectMethod=direct","sa","";);

System.setProperty(

"jasper.reports.compile.class.path",

getServletContext().getRealPath("/WEB-INF/lib/jasperreports-0.5.3.jar") +

System.getProperty("path.separator") +

getServletContext().getRealPath("/WEB-INF/classes/")

);

 

System.setProperty(

"jasper.reports.compile.temp",

getServletContext().getRealPath("/reports/")

);

 

JasperCompileManager.compileReportToFile(getServletContext().getRealPath("/reports/alex.xml"));

 

parameters.put("ReportTitle", "report");

 

JasperCompileManager.compileReportToFile(getServletContext().getRealPath("/reports/alex.xml"));

 

File reportFile = new File(getServletContext().getRealPath("/reports/alextest.jasper"));

 

 

JasperReport jrt = (JasperReport)JRLoader.loadObject(reportFile.getPath());

 

JasperPrint jpt = JasperFillManager.fillReport(jrt,parameters,sqlConn);

response.setContentType("application/octet-stream");

ServletOutputStream ouputStream = response.getOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(ouputStream);

oos.writeObject(jpt);

oos.flush();

oos.close();

} catch (Exception e){

e.printStackTrace();

}

}

}

 

JRPrinterApplet.java:

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

import java.io.*;

import java.util.*;

import dori.jasper.engine.*;

import dori.jasper.engine.util.*;

import dori.jasper.engine.export.*;

import java.net.*;

 

public class JRPrinterApplet extends Applet {

private URL url = null;

private boolean isStandalone = false;

private TextField textField1 = new TextField();

public void init(){

try {

jbInit();

}

catch(Exception e) {

e.printStackTrace();

}

}

 

private void jbInit() throws Exception {

textField1.setText("printing....");

//String strUrl = "/JRPrintServlet";

String strUrl = getParameter("REPORT_URL");

System.out.println("strUrl="+strUrl);

if(strUrl!=null){

try{

System.out.println(getCodeBase());

url = new URL(getCodeBase(),strUrl);

System.out.println("url="+url);

}catch(Exception e){

e.printStackTrace();

}

}

if(url!=null){

try{

//textField1.setText(url.toString());

System.out.println("url123="+url);

Object obj = dori.jasper.engine.util.JRLoader.loadObject(url);

JasperPrintManager.printReport((JasperPrint)obj, true);

}catch(Exception e){

e.printStackTrace();

}

}

this.add(textField1, null);

}

}

Link to comment
Share on other sites

  • Replies 0
  • 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...