2016-06-14 14 views
0

私はジャスパーのことで新しく、自分のアプリケーションからジャスパーでpdfファイルを生成しようとしたい。 サービスからジャスパーファイルを呼び出す

iReportで構築した1つのファイル(reportEmployee.jrxml)がアプリケーションにあり、リンクが1つあり、そのリンクをクリックするとレポートが作成されますpdfファイルをダウンロードし、ローカルストレージに保存してください。

私はExcelと単語を試していますが、それは動作しますが、私はそれをするのが混乱していると感じています。

これはEmployeeManagerImpl(EmployeeManagerの実装)

@Override 
public void dataEmployeePDFDownload() { 
    // TODO Auto-generated method stub 
    try 
    { 

     File file = new File("report/reportEmployee.jrxml"); 
     String absolutePath = file.getAbsolutePath(); 
     InputStream input = new FileInputStream(new File(absolutePath)); 
     JasperReport jasperReport = JasperCompileManager.compileReport(input); 
     JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null); 
     JasperExportManager.exportReportToPdf(jasperPrint); 
    } 
    catch(JRException ex) 
    { 
     ex.getMessage(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

にコード

JSPファイルにコントローラ

@RequestMapping("/savepdf") 
public String dataEmployeePdf() 
{ 
    employeeManager.dataEmployeePDFDownload(); 
    return "employ/editEmployeeList"; 
} 

3 Iであります私のアプリケーションを通してデータベースからデータを送信する必要はありませんなぜなら、私はそのファイル(employeeReport.jrxml)をデータベースから自動的に取得するためです。私たちはそのリンクをクリックしたとき この言葉に保存し、Excelへの保存と同じ場合は、それが私を助けることができるこの

enter image description here

誰のようなローカルストレージにファイルを書き込むのだろうか?私はこのことについて再投稿しなかったことを願っています。

答えて

1

ファイルをダウンロードするには、コンテンツをresponse.getOutputStream()に渡す必要があります。 fileNameの設定、encondingなどのヘッダー情報やファイルcontentTypeの設定など、レスポンスに他の情報を設定することができます。

@RequestMapping("/savepdf") 
    public void dataEmployeePdf(HttpServletResponse response) { 
     try { 

      File file = new File("report/reportEmployee.jrxml"); 
      String absolutePath = file.getAbsolutePath(); 
      InputStream input = new FileInputStream(new File(absolutePath)); 
      JasperReport jasperReport = JasperCompileManager.compileReport(input); 
      JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null); 
      JasperExportManager.exportReportToPdfStream(jasperPrint,response.getOutputStream()); 
     } catch (JRException ex) { 
      ex.getMessage(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
+0

このメソッドに送信されるHttpServletResponseは何ですか? –

+0

それは方法に応答を注入する春です –

+0

あなたの助けを、ありがとう、仲間 –

関連する問題