Печать отчета Jasper на стороне клиента
На портале WebSphere я пытаюсь использовать функцию печати JasperReport.
JasperPrintManager.printReport(jasperPrint, true);
Этот способ отлично работает для WAS и localhost. Но когда я развертываю приложение на удаленном сервере, диалоговое окно печати не появляется, и печать не выполняется. Хотя я использовал сервис JavaPrint для поиска всех принтеров, а затем выбрал один для печати задачи, но он даже не работает таким образом.
1 ответ
Ваше решение работает на локальном хосте, потому что ваш клиент и сервер - это одна и та же машина. Таким образом, вызов команды print на стороне сервера сделает ее похожей на печать с клиента.
Но вы не хотите, чтобы он печатался на сервере. Вы хотите, чтобы браузер клиента имел доступ к отчету в печатном формате. Распространенным форматом является PDF.
Как упоминает @AlexK в комментариях, уже есть несколько других вопросов (с ответами) о том, как это сделать.
Я предлагаю сделать это в портлете, чтобы в представлении портлета была кнопка, которая будет вызывать serveResourceURL
и загрузите PDF-версию отчета. serveResource
Метод был разработан для таких ситуаций, когда разработчикам нужно предоставлять контент, отличный от HTML.