java ireport 打印_ireport客户端打印
Ireport客戶端打印
1.新建一個web項目Outireport。如圖:
2.向lib導(dǎo)入ireport報表需要的包jasperreports-4.0.2.jar, jasperreports-applet-4.0.2.jar, commons-collections-2.1.jar, commons-logging-1.0.2.jar, groovy-all-1.7.5.jar, iText-2.1.7.jar, iTextAsian.jar(這幾個表可能有個別包不是必須)。如圖:
3.在WebRoot中新建一個名為ireport的目錄,里面存放打印的ireport報表,我這里是一個用戶的報表。如圖:
4.在src中新建一個applet的目錄,在applet中新建一個名為IreportServlet.java的servlet。代碼如下:
Java代碼
package applet;
import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.util.JRLoader;
public class IreportServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List list=new ArrayList();
try{
Users users=null;
for(int i=0;i<2;i++)
{
users=new Users();
users.setUserName("yzp"+i);
users.setSex(""+i);
users.setPhone("13410479904");
users.setPhone("19890214");
list.add(users);
}
JRBeanCollectionDataSource jds =new JRBeanCollectionDataSource(list); //使用javabean數(shù)據(jù)源
String url=this.getServletContext().getRealPath("/")+"/ireport/users.jasper";//報表模板的文件路徑
File reportFile = new File(url);
JasperReport report=(JasperReport) JRLoader.loadObject(reportFile.getPath());
JasperPrint jasperPrint=null;
jasperPrint= JasperFillManager.fillReport(report, null, jds);//將所有的數(shù)據(jù)填充到j(luò)asperPrint,形成正常的報表
response.setContentType("application/pdf");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);//將JasperPrint對象寫入對象輸出流中
oos.flush();
oos.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
package applet;
import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.util.JRLoader;
public class IreportServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List list=new ArrayList();
try{
Users users=null;
for(int i=0;i<2;i++)
{
users=new Users();
users.setUserName("yzp"+i);
users.setSex(""+i);
users.setPhone("13410479904");
users.setPhone("19890214");
list.add(users);
}
JRBeanCollectionDataSource jds =new JRBeanCollectionDataSource(list); //使用javabean數(shù)據(jù)源
String url=this.getServletContext().getRealPath("/")+"/ireport/users.jasper";//報表模板的文件路徑
File reportFile = new File(url);
JasperReport report=(JasperReport) JRLoader.loadObject(reportFile.getPath());
JasperPrint jasperPrint=null;
jasperPrint= JasperFillManager.fillReport(report, null, jds);//將所有的數(shù)據(jù)填充到j(luò)asperPrint,形成正常的報表
response.setContentType("application/pdf");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);//將JasperPrint對象寫入對象輸出流中
oos.flush();
oos.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java ireport 打印_ireport客户端打印的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UDP协议格式
- 下一篇: panabit环境搭建