2012-01-21 22 views
1

私はJasperReportsとJavaを使ってpdf形式のレポートを生成することができます。pdfダウンロードダイアログウィンドウがブラウザに表示されません。 extjs 4 with java

生成されたレポートはクライアント側にダウンロードできません。 私は以下のコードを使用してPDFファイルを生成しています:

public void getTaskreportPDF(Session openSession,HttpServletRequest request,HttpServletResponse response) { 
     try { 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/contact","root","root"); 
Map params = getParameters(openSession); 
Date date = new Date(); 
String reportfileName = "report"+date.getDate()+"-"+date.getMonth()+"-"+date.getYear()+"-"+date.getTime()+".pdf"; 
JasperDesign jasperDesign = JRXmlLoader.load(this.getClass().getResourceAsStream("/com/gantt/report/ganttreport.jrxml")); 
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); 
JasperPrint jasperprint = JasperFillManager.fillReport(jasperReport, params,con); 
JRAbstractExporter exporterPDF = new JRPdfExporter(); 
exporterPDF.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint); 
exporterPDF.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); 
response.setHeader("Content-Disposition", "inline;filename="+ reportfileName); 
response.setContentType("application/pdf"); 
exporterPDF.exportReport(); 
} catch(Exception exception) { 
System.out.println("Error occured " +exception.getMessage()); 
} 
} 

マイ放火犯ネットタブは、私が応答として4キロバイトのPDFレポートファイルを持っていたことを示しています。しかし、問題は、ダウンロードウィンドウが表示されないので、私はそれを保存したり、そのレポートを表示することはできませんです。

私の放火犯は示しています
のContent-処分インライン;ファイル名= report21-0-112-1327135412907.pdf コンテンツタイプapplication/pdf私のダウンロードウィンドウがない作る私は何を作っています間違い

現れる?

答えて

1

Content-Dispositionヘッダーの代わりにinlineの代わりにattachmentを使用してください。

+0

ありがとうございますJBソリューションは動作しますが、私のレポートには名前が付いています。** GetTaskReportPDF.action **インラインヘッダを削除し、ファイル名をexporterPDF.setParameter(JRExporterParameter.OUTPUT_FILE_NAME、 "report.pdf")として指定しようとしました。レポートには** GetTaskReportPDF.action **という名前しか付いていません。それで、その名前を変更する方法。あなたはそれを知っていますか? –

+0

私は私の助けを借りてくれたことに感謝しました。ソリューションは** response.setHeader( "Content-disposition"、 "attachment; filename = \" "+" example.pdf "+" \ ""); **です。 –

関連する問題