我有一個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」)在那裏不起作用。 –