public void odt() throws JRException {
    long start = System.currentTimeMillis();
    File sourceFile = new File("build/reports/DataSourceReport.jrprint");

    JasperPrint jasperPrint = (JasperPrint) JRLoader.loadObject(sourceFile);

    File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".odt");

    JROdtExporter exporter = new JROdtExporter();

    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());

    exporter.exportReport();

    System.err.println("ODT creation time : " + (System.currentTimeMillis() - start));
  }
  public void odt() throws JRException {
    long start = System.currentTimeMillis();
    File sourceFile = new File("build/reports/JRMDbReport.jrprint");

    JasperPrint jasperPrint = (JasperPrint) JRLoader.loadObject(sourceFile);

    File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".odt");

    JROdtExporter exporter = new JROdtExporter();

    exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
    exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(destFile));

    exporter.exportReport();

    System.err.println("ODT creation time : " + (System.currentTimeMillis() - start));
  }
  public void service(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    List<JasperPrint> jasperPrintList = BaseHttpServlet.getJasperPrintList(request);

    if (jasperPrintList == null) {
      throw new ServletException("No JasperPrint documents found on the HTTP session.");
    }

    Boolean isBuffered =
        Boolean.valueOf(request.getParameter(BaseHttpServlet.BUFFERED_OUTPUT_REQUEST_PARAMETER));
    if (isBuffered.booleanValue()) {
      FileBufferedOutputStream fbos = new FileBufferedOutputStream();
      JROdtExporter exporter = new JROdtExporter();
      exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
      exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fbos);

      try {
        exporter.exportReport();
        fbos.close();

        if (fbos.size() > 0) {
          response.setContentType("application/vnd.oasis.opendocument.text");
          //				response.setHeader("Content-Disposition", "inline; filename=\"file.odt\"");
          response.setContentLength(fbos.size());
          ServletOutputStream ouputStream = response.getOutputStream();

          try {
            fbos.writeData(ouputStream);
            fbos.dispose();
            ouputStream.flush();
          } finally {
            if (ouputStream != null) {
              try {
                ouputStream.close();
              } catch (IOException ex) {
              }
            }
          }
        }
      } catch (JRException e) {
        throw new ServletException(e);
      } finally {
        fbos.close();
        fbos.dispose();
      }

      //			else
      //			{
      //				response.setContentType("text/html");
      //				PrintWriter out = response.getWriter();
      //				out.println("<html>");
      //				out.println("<body bgcolor=\"white\">");
      //				out.println("<span class=\"bold\">Empty response.</span>");
      //				out.println("</body>");
      //				out.println("</html>");
      //			}
    } else {
      response.setContentType("application/vnd.oasis.opendocument.text");
      // response.setHeader("Content-Disposition", "inline; filename=\"file.odt\"");

      JROdtExporter exporter = new JROdtExporter();
      exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);

      OutputStream ouputStream = response.getOutputStream();
      exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

      try {
        exporter.exportReport();
      } catch (JRException e) {
        throw new ServletException(e);
      } finally {
        if (ouputStream != null) {
          try {
            ouputStream.close();
          } catch (IOException ex) {
          }
        }
      }
    }
  }