JasperReports学习笔记3-在浏览器生成PDF文件
一、新建web工程,导入jasperreports所需的jar包,配置web.xml
1
<
servlet
>
2
<
servlet-name
>
PdfServlet
</
servlet-name
>
3
<
servlet-class
>
net.sf.jasperreports.j2ee.servlets.PdfServlet
</
servlet-class
>
4
</
servlet
>
5
<
servlet-mapping
>
6
<
servlet-name
>
PdfServlet
</
servlet-name
>
7
<
url-pattern
>
/servlets/pdf
</
url-pattern
>
8
</
servlet-mapping
>
2
3
4
5
6
7
8
二、 编译jrxml文件,生成jasper文件
1
/**/
/*
2
* JasperReports - Free Java Reporting Library.
3
* Copyright (C) 2001 - 2013 Jaspersoft Corporation. All rights reserved.
4
* http://www.jaspersoft.com
5
*
6
* Unless you have purchased a commercial license agreement from Jaspersoft,
7
* the following license terms apply:
8
*
9
* This program is part of JasperReports.
10
*
11
* JasperReports is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* JasperReports is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Lesser General Public License for more details.
20
*
21
* You should have received a copy of the GNU Lesser General Public License
22
* along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
23
*/
24
package
servlets;
25![]()
26
import
java.io.IOException;
27
import
java.io.PrintWriter;
28![]()
29
import
javax.servlet.ServletContext;
30
import
javax.servlet.ServletException;
31
import
javax.servlet.http.HttpServlet;
32
import
javax.servlet.http.HttpServletRequest;
33
import
javax.servlet.http.HttpServletResponse;
34![]()
35
import
net.sf.jasperreports.engine.JRException;
36
import
net.sf.jasperreports.engine.JasperCompileManager;
37![]()
38![]()
39![]()
/** */
/**
40
* @author Teodor Danciu ([email protected])
41
* @version $Id: CompileServlet.java 5876 2013-01-07 19:05:05Z teodord $
42
*/
43
public
class
CompileServlet
extends
HttpServlet
44![]()
{
45![]()
46![]()
47![]()
/** *//**
48
*
49
*/
50
public void service(
51
HttpServletRequest request,
52
HttpServletResponse response
53
) throws IOException, ServletException
54![]()
{
55
ServletContext context = this.getServletConfig().getServletContext();
56![]()
57
response.setContentType("text/html");
58
PrintWriter out = response.getWriter();
59![]()
60
try
61![]()
{
62
JasperCompileManager.compileReportToFile(context.getRealPath("/reports/WebappReport.jrxml"));
63
}
64
catch (JRException e)
65![]()
{
66
out.println("<html>");
67
out.println("<head>");
68
out.println("<title>JasperReports - Web Application Sample</title>");
69
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
70
out.println("</head>");
71
72
out.println("<body bgcolor=\"white\">");
73![]()
74
out.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
75
out.println("<pre>");
76![]()
77
e.printStackTrace(out);
78![]()
79
out.println("</pre>");
80![]()
81
out.println("</body>");
82
out.println("</html>");
83![]()
84
return;
85
}
86![]()
87
out.println("<html>");
88
out.println("<head>");
89
out.println("<title>JasperReports - Web Application Sample</title>");
90
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
91
out.println("</head>");
92
93
out.println("<body bgcolor=\"white\">");
94![]()
95
out.println("<span class=\"bold\">The JRXML report design was successfully compiled.</span>");
96![]()
97
out.println("</body>");
98
out.println("</html>");
99
}
100![]()
101![]()
102
}
103
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
45
46
47
48
49
50
51
52
53
54
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
55
56
57
58
59
60
61
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
62
63
64
65
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
三、填充数据
1
/**/
/*
2
* JasperReports - Free Java Reporting Library.
3
* Copyright (C) 2001 - 2013 Jaspersoft Corporation. All rights reserved.
4
* http://www.jaspersoft.com
5
*
6
* Unless you have purchased a commercial license agreement from Jaspersoft,
7
* the following license terms apply:
8
*
9
* This program is part of JasperReports.
10
*
11
* JasperReports is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* JasperReports is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Lesser General Public License for more details.
20
*
21
* You should have received a copy of the GNU Lesser General Public License
22
* along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
23
*/
24
package
servlets;
25![]()
26
import
java.io.File;
27
import
java.io.IOException;
28
import
java.io.PrintWriter;
29
import
java.util.HashMap;
30
import
java.util.Map;
31![]()
32
import
javax.servlet.ServletContext;
33
import
javax.servlet.ServletException;
34
import
javax.servlet.http.HttpServlet;
35
import
javax.servlet.http.HttpServletRequest;
36
import
javax.servlet.http.HttpServletResponse;
37![]()
38
import
net.sf.jasperreports.engine.JRException;
39
import
net.sf.jasperreports.engine.JRRuntimeException;
40
import
net.sf.jasperreports.engine.JasperFillManager;
41
import
net.sf.jasperreports.engine.JasperPrint;
42
import
net.sf.jasperreports.j2ee.servlets.BaseHttpServlet;
43
import
datasource.WebappDataSource;
44![]()
45![]()
46![]()
/** */
/**
47
* @author Teodor Danciu ([email protected])
48
* @version $Id: FillServlet.java 5876 2013-01-07 19:05:05Z teodord $
49
*/
50
public
class
FillServlet
extends
HttpServlet
51![]()
{
52![]()
53![]()
54![]()
/** *//**
55
*
56
*/
57
public void service(
58
HttpServletRequest request,
59
HttpServletResponse response
60
) throws IOException, ServletException
61![]()
{
62
ServletContext context = this.getServletConfig().getServletContext();
63![]()
64
response.setContentType("text/html");
65
PrintWriter out = response.getWriter();
66![]()
67
try
68![]()
{
69
String reportFileName = context.getRealPath("/reports/WebappReport.jasper");
70
File reportFile = new File(reportFileName);
71
if (!reportFile.exists())
72
throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");
73![]()
74
Map parameters = new HashMap();
75
parameters.put("ReportTitle", "Address Report");
76
parameters.put("BaseDir", reportFile.getParentFile());
77
78
JasperPrint jasperPrint =
79
JasperFillManager.fillReport(
80
reportFileName,
81
parameters,
82
new WebappDataSource()
83
);
84
85
request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
86
}
87
catch (JRException e)
88![]()
{
89
out.println("<html>");
90
out.println("<head>");
91
out.println("<title>JasperReports - Web Application Sample</title>");
92
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
93
out.println("</head>");
94
95
out.println("<body bgcolor=\"white\">");
96![]()
97
out.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
98
out.println("<pre>");
99![]()
100
e.printStackTrace(out);
101![]()
102
out.println("</pre>");
103![]()
104
out.println("</body>");
105
out.println("</html>");
106
}
107![]()
108
out.println("<html>");
109
out.println("<head>");
110
out.println("<title>JasperReports - Web Application Sample</title>");
111
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
112
out.println("</head>");
113
114
out.println("<body bgcolor=\"white\">");
115![]()
116
out.println("<span class=\"bold\">The compiled report design was successfully filled with data.</span>");
117![]()
118
out.println("</body>");
119
out.println("</html>");
120
}
121![]()
122![]()
123
}
124
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
52
53
54
55
56
57
58
59
60
61
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
62
63
64
65
66
67
68
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
![](http://img.e-com-net.com/image/product/d3c975ab092b4b77b3c90271c80dcc88.gif)
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124