Я реализовал механизм для генерации и загрузки PDF на моей странице JSF с использованием метода внутри моего компонента. Вот компонент для выполнения этой операции:
<p:commandButton title="Stampa" icon="ui-icon-print"
ajax="false" onclick="PrimeFaces.monitorDownload(start, stop);"
rendered="#{productionOrdersView.showMenuOptions()}"
target="_blank"
actionListener="#{productionOrdersView.print(true)}">
</p:commandButton>
И этот метод в bean-компоненте:
public StreamedContent generateSelectedPDFFile() {
String fileName = "Bolla_" + selected.getOrderNumber();
InputStream stream = new ByteArrayInputStream(
new GenerateStatusPDF(companyInfo).generate(selected).toByteArray());
StreamedContent file = new DefaultStreamedContent(stream, "application/pdf", fileName + ".pdf");
return file;
}
Я хочу добиться этого шаблона:
- Щелчок пользователя
- Отображается диалоговое окно с процессом загрузки
- Бин загружает данные
- Завершение создания PDF
- Диалог закрывается
- Документ для печати помещен в новую вкладку
Как этого добиться?