Распечатать JasperReports на стороне клиента? - PullRequest
2 голосов
/ 14 января 2011

Я разработал веб-приложение, которое использует JasperReports. Я заметил, что отчеты печатаются на стороне сервера.

Как настроить печать отчетов на стороне клиента (из веб-браузера)?

Любые идеи будут полезны.

1 Ответ

1 голос
/ 16 марта 2011

Предполагается, что у вас есть архитектура на основе сервлетов:

  1. Получить указатель на экземпляр HttpServletResponse с помощью HttpServletResponse response = this.getThreadLocalResponse(); (например).
  2. Установите для различных заголовков значениеукажите вложение файла.
    HttpServletResponse response = getServletResponse();
    response.setHeader( "Content-Description", "File Transfer" );
    response.setHeader( "Content-Disposition", "attachment; filename=" +
      "report.pdf" );
    response.setHeader( "Content-Type", "application/pdf" );
    response.setHeader( "Content-Transfer-Encoding", "binary" );
    
  3. Настройте JRExporter (jre) для использования потока вывода HttpServletRespone:
        jre.setParameter( JRExporterParameter.OUTPUT_STREAM, getOutputStream() );
    
  4. Выполните отчет.

Браузер предложит пользователю сохранить отчет в виде файла PDF.Пользователь может распечатать PDF.

...