亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Jasper 報告無法導出為 PDF

Jasper 報告無法導出為 PDF

飲歌長嘯 2022-05-25 10:30:37
我正在嘗試將碧玉報告導出為 PDF,但它不起作用。這是我正在使用的代碼。注意: contextPath 變量包含實際的上下文。它具有我的 .war 文件的絕對路徑的值C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\myWarFile\String sourceFileName =     contextPath + "WEB-INF/classes/report/ClsReportBean.jasper";JasperFillManager.fillReportToFile(sourceFileName, "C://sample_report.pdf",     parameters, new JRBeanCollectionDataSource(lstDataSource));問題是當我嘗試將報告導出為 PDF 時。這是錯誤信息。net.sf.jasperreports.engine.JRException:保存文件時出錯:C:\sample_report.pdf。
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

我用這段代碼解決了這個問題......


try {


   File file = new File(exportPdfPath);

        if (!file.exists()) {

            LOGGER.info("creating folder");

            file.mkdir();

            file.setWritable(true);

        }



        JasperPrint something = JasperFillManager.fillReport(sourceFileName, parameters, new JRBeanCollectionDataSource(lstDataSource));

        OutputStream output = new FileOutputStream(new File(exportPdfPath+"/test.pdf")); 

        JasperExportManager.exportReportToPdfStream(something, output); 

            output.close();


    }


查看完整回答
反對 回復 2022-05-25
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

JasperFillManager.fillReportToFile不會生成 PDF,而是生成序列化的填充報表對象。由于某種原因,填充的報告引用了一個DefaultJasperReportsContext不可序列化的實例。這不應該發生,但要了解它為什么會發生,我們需要有關此案的更多細節。


但是如果你想生成一個PDF,你不需要序列化填充的報告。您可以執行以下操作來直接生成 PDF:


JasperRunManager.runReportToPdfFile(sourceFileName, "C://sample_report.pdf", 

    parameters, new JRBeanCollectionDataSource(lstDataSource));


查看完整回答
反對 回復 2022-05-25
  • 2 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號