页面 预览 服务器文件,如何在jsp页面预览报告,并保存服务器上的html或pdf文件?...

以下是我的功能,我在我的serveResource方法了PortletAction如何在jsp页面预览报告,并保存服务器上的html或pdf文件?

public String ajax_GenerateReportsforCampaignAdvertiseDateRangeWithCustomQuery(

ResourceRequest request, ResourceResponse response,

String str_camp_id) throws Exception {

PortletContext pc = request.getPortletSession().getPortletContext();

String Pathjrxml = pc

.getRealPath("/src_reports/Campaign_Advertise_DateRange_Report.jrxml");

String pathjasper = pc

.getRealPath("/src_reports/Campaign_Advertise_DateRange_Report.jasper");

_report_path = pc.getRealPath("htmlreport/report");

_report_name = Calendar.getInstance().getTimeInMillis() + "";

_report_path = _report_path + _report_name;

String str_start_date = request.getParameter("f_start_date");

String str_end_date = request.getParameter("f_end_date");

Date filter_start_date = null;

Date filter_end_date = null;

List temp_campReportList = new ArrayList(

8);

log.info("ajax_Generate Reports For Campaign Advertise With Date Range Enter");

/** Dateformat which will convert filter date string in to specified **/

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");

filter_start_date = dateFormat.parse(str_start_date);

filter_end_date = dateFormat.parse(str_end_date);

str_end_date = dateFormat.format(filter_end_date);

log.info("Filter Start Date : " + filter_start_date);

log.info("Filter End Date : " + filter_end_date);

ReportCustomQuery cust = new ReportCustomQuery();

String pathImage = request.getContextPath()

+ "/eMenuAdvertise-portlet/img/eMenu Logo_1.png";

temp_campReportList = cust.GetAdvertiseListByCampaignsForReports(

Long.parseLong(str_camp_id), filter_start_date,

filter_end_date, pathImage);

System.setProperty("java.awt.headless", "true");

JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(

temp_campReportList);

System.out.println(" bean collection "

+ beanCollectionDataSource.getRecordCount());

System.out.println("Compile Start");

JasperCompileManager.compileReportToFile(Pathjrxml, pathjasper);

JasperPrint jasperPrint = JasperFillManager.fillReport(pathjasper,

new HashMap(), beanCollectionDataSource);

log.info("Compile End");

log.info(" report path " + _report_path);

JasperExportManager.exportReportToHtmlFile(jasperPrint, _report_path

+ ".html");

JasperExportManager.exportReportToPdfFile(jasperPrint, _report_path

+ ".pdf");

log.info("ajax_GenerateReports Leave");

return _report_name;

}

和调用此方法Ajax调用调用是继

function GenerateReport(addToDo) {

var camp_ID = document.getElementById('camp_id').value;

var f_start_date = document

.getElementById('Start_validBeforeDatepicker').value;

var f_end_date = document.getElementById('End_validAfterDatepicker').value;

$.ajax({

url : addToDo,

data : {

"camp_id" : camp_ID,

"f_start_date" : f_start_date,

"f_end_date" : f_end_date,

"CMD" : camp_ID

},

type : "GET",

timeout : 20000,

dataType : "text",

async : false,

success : function(data) {

createRenderURL(data);

}

});

以下是我creatRenderUrl的JavaScript它创建一个动态resourceurl为新创建的html文件,然后我显示html页面在iframe中作为预览

function createRenderURL(str_path,contextpath,resourceurl) {

AUI().use('liferay-portlet-url', function(A) {

var renderURL = Liferay.PortletURL.createRenderURL();

renderURL.setParameter("jspPage", "/htmlreport/report" + str_path);

renderURL.setPortletId("eMenuAdvertise_WAR_eMenuAdvertiseportlet");

var p= "";

var downloadurl="/eMenuAdvertise-portlet/htmlreport/report"+ str_path+".pdf";

var x=document.getElementById("outPopUp");

x.style.visibility="hidden";

document.getElementById('reportpreview').src = "/eMenuAdvertise-portlet/htmlreport/report"+ str_path+".html";

$("#download").click(function() {

DownloadFile(downloadurl,resourceurl);

});

return downloadurl;

});

}

但是我想要做的是预览报告而不保存任何文件?在飞行中?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值