Как открыть сгенерированный файл на Vaadin Flow? - PullRequest
0 голосов
/ 17 июня 2020

В моем приложении я хочу открыть сгенерированный PDF-файл с помощью PdfBox на новой вкладке. Я видел несколько документов, но они предназначены для старой версии Vaadin или не будут работать в моем случае. Я не хочу сохранять его на сервере или прикреплять файл к какой-либо ссылке или кнопке, я хочу написать метод, чтобы автоматически открывать его на новой вкладке.

PdfBox дает возможность сохранить файл на OutputStream, есть ли способ открыть этот файл OutputStream на новой вкладке? Или, по крайней мере, загрузить его, не прикрепляя к виджету Anchor, как это делает Flow Viritin?

1 Ответ

2 голосов
/ 18 июня 2020

Проблема заключается в том, что, поскольку вы не хотите сохранять файл на сервере, вы не можете иметь прямой URL-адрес указанного файла для ссылки. Вы также не можете передать файл pdf в качестве параметра другому представлению.

Решение состоит в том, чтобы сохранить PDF-файл в VaadinSession (поскольку byte[], вероятно, самый простой), и когда пользователь затем открывает другую вкладку, щелкнув определенную ссылку привязки / маршрутизатора, это представление прочитает PDF-файл из VaadinSession и добавит его в представление. ( Как отображать pdf с помощью Vaadin 14 ). Не забудьте снова удалить pdf из сеанса VaadinSession :)

...