我有一个web应用程序,我在其中使用JasperReport创建PDF报告。我已经托管了我的网站。如何在JSP中打开PDF文件
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%@page import="net.sf.jasperreports.engine.JasperExportManager"%>
<%@page import="net.sf.jasperreports.engine.JasperExportManager"%>
<%@page import="net.sf.jasperreports.view.JasperViewer"%>
<%@page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@page import="net.sf.jasperreports.engine.JasperReport"%>
<%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@page import="net.sf.jasperreports.engine.JRResultSetDataSource"%>
<%@page import="net.sf.jasperreports.engine.JasperCompileManager"%>
<%@page import="net.sf.jasperreports.*"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String invno=request.getParameter("invno");
try {
String absolutePath = getServletContext().getRealPath("clDS_Close.jrxml");
JasperReport jasperReport=JasperCompileManager.compileReport(absolutePath);
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_fleet","root","aadi");
Statement stmt = null;
ResultSet rset = null;
Statement st2=conn.createStatement();
String queryString = "select tbl_invoice.*,tbl_package.package_name,tbl_package.basic_hr,tbl_package.basic_km,tbl_package.amount from tbl_invoice inner join tbl_package on tbl_invoice.package_id=tbl_package.package_id where tbl_invoice.invoice_no="+invno+"";
stmt = conn.createStatement();
rset = stmt.executeQuery(queryString);
JRResultSetDataSource jasperReports = new JRResultSetDataSource(rset);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null, jasperReports);
String filename=null;
filename="CL"+invno+".pdf";
//Report saved in specified path
JasperExportManager.exportReportToPdfFile(jasperPrint,filename);
//Report open in Runtime
String createdFile = getServletContext().getRealPath(filename);
out.println(createdFile);
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " +filename);
} catch(Exception e) {
out.println(e);
}
%>
</body>
</html>
我接受用户的发票号码并打开该发票的PDF文件。
我的问题是我的pdf文件正在创建并存储到路径,但我不知道如何打开它。在Windows中有一个方法RunTime.getRunTime.exec()
。但我认为这是行不通的,因为我已经将我的Web应用程序托管到免费域名中,所以此方法在此不起作用。 请告诉我以上方法的替代方案,以便我可以打开存储在特定路径中的PDF文件。
检查此[回复](http://stackoverflow.com/a/1979900/2790364)可能会得到一些东西 –
不,我用jasper报告创建了我的PDF。我只想知道如何通过JSP打开它,因为我已将我的应用程序托管到www.jvmhost.net。 Runtime.getRuntime()。exec(“rundll32 url.dll,FilProtocolHandler”)在那里不起作用。 –