String filepath="test_report.jasper";
ReportHelper report = new ReportHelper();
String outputformat="pdf";
Map map = new HashMap();
map.put("Name", "zhaojackson");
map.put("reportfile", filepath);
map.put("output_format",outputformat);
try {
report.exportToFile("D:/output."+outputformat, map);
public void exportToFile(File file,Map parameters) throws XCException {
    checkParameters(parameters);
    try {
      JasperReport jasperReport = (JasperReport) JRLoader.loadObject(
          inputStream);
      conn = XCDataSource.getConnection();
      jasperprint = JRFiller.fillReport(jasperReport, parameters, conn);
      exporter = getExporter();
      exporter.setParameter(JRExporterParameter.OUTPUT_FILE, file);
      exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint);
      exporter.exportReport();
    }
    catch (XCException ex) {
      throw ex;
    }
    catch (JRException ex) {
      ex.printStackTrace();
      throw new XCException("error in generate report.",ex);
    }finally{
      try {
        if (conn != null) {
          conn.close();
        }
      }
      catch (SQLException ex1) {
      }
    }
  }
生成pdf为什么是空?

解决方案 »

  1.   

    文件是没有问题的! 在ireport里是能够执行的!
      

  2.   

    getExporter(); 是不是返回 JRPdfExporter  ??
    没有看到什么问题,楼主的代码不全,不然我在我的机器试试
      

  3.   

    private JRExporter getExporter(){
        if(output_format.equalsIgnoreCase("pdf")){
          exporter=new JRPdfExporter();
        }
        else if(output_format.equalsIgnoreCase("xls")){
          exporter = new JRXlsExporter();
          exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
        }
        else if(output_format.equalsIgnoreCase("cvs"))
          exporter=new JRCsvExporter();
        else if(output_format.equalsIgnoreCase("html")){
          exporter=new JRHtmlExporter();
          Map imagesMap=new HashMap();
          exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
          exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "images/");     }else if(output_format.equalsIgnoreCase("xml"))
          exporter=new JRXmlExporter();
        else if(output_format.equalsIgnoreCase("txt")){
           exporter=new JRTextExporter();
        }     else
          exporter=new JRPdfExporter();       return exporter;
      }
      

  4.   

    楼主的代码没有问题,是不是因为中文字体的原因,没有加iTextAsian.jar
      

  5.   

    conn = XCDataSource.getConnection();
    这句代码什么意思?XCDataSource是什么数据源啊?