2016-06-28 96 views
0

我必須顯示一些報告動態報告。我使用NetBeans和Tomcat 7.最後,所有必須上傳到雲OpenShift。我用DynamicReports創建簡單報告(代碼片段):如何在瀏覽器中顯示DynamicReports而無需下載到驅動器?

Connection conn=null; 
    try { 
    Class.forName(DBConnStrings.driver); 
    conn = DriverManager.getConnection(DBConnStrings.url + DBConnStrings.dbName+DBConnStrings.sslState, DBConnStrings.userName, DBConnStrings.password); 
    } catch (Exception e) { 
     e.printStackTrace(); 

    } 
    JasperReportBuilder report = DynamicReports.report(); 
    report 
      .columns(
        Columns.column("Tank Id", "id", DataTypes.integerType()), 
        Columns.column("Tank Name", "name", DataTypes.stringType()), 
        Columns.column("Label", "label", DataTypes.stringType()), 
        Columns.column("Description", "descrshort", DataTypes.stringType())); 
    report.setDataSource("SELECT id, name, label, descrshort FROM "+ DBConnStrings.dbName +".tbltankslist", conn); 

    try { 
      //show the report 
    //report.show(); 

      //export the report to a pdf file 
    report.toPdf(new FileOutputStream("c:/report.pdf")); 
} catch (DRException e) { 
    e.printStackTrace(); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

此代碼位於一個Servlet。有用。我首先得到了JasperViewer,在我的硬盤上有了report.pdf。但我不想要它。首先,我不想看到JasperViewer,其次我不想將文件下載到客戶端硬盤。如何僅在Web瀏覽器內顯示報告?

Here is the question Jasper Reports.這是關於賈斯珀報告+ iReport,我不知道如何使用DynamicReports的信息 - 第一,第二也有「下載PDF到客戶端驅動器」的方法,但我需要在瀏覽器中顯示它。

回答

1

在文件中使用以下代碼重定向到jasper調用頁面,以便您的jasperPDF應該在新選項卡中打開而不是下載。

JasperInvocation.jsp =>文件,在其中你調用jasperreport的

<form method="POST" action="JasperInvocation.jsp" target="_blank"> 
0

請找到下面的代碼,我在動態報告(碧玉API)已經實現,它的工作對我來說: -

@RequestMapping(value="/pdfDownload", method = RequestMethod.GET) 
public void getPdfDownload(HttpServletResponse response) { 
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 

report().columns().setDataSource().show() 
.toPdf(buffer); 

byte[] bytes = buffer.toByteArray(); 
InputStream inputStream = new ByteArrayInputStream (bytes); 
IOUtils.copy(inputStream, response.getOutputStream()); 
response.setHeader("Content-Disposition", "attachment; filename=Accepted1.pdf"); 
response.flushBuffer(); 

} 
相關問題