Как скачать PDF из Vaadin Flow App? - PullRequest
0 голосов
/ 30 апреля 2020

Как можно go скачать PDF в Vaadin? Кажется, это как-то связано с кнопкой привязки, но не знаю, как можно было бы go загрузить ее.

Я просмотрел несколько ресурсов, но ни один из них не помог. Это предварительно написанный PDF-файл, который не создается динамически, поэтому он удаляет кучу вопросов. Этот создан вокруг Vaadin7, что мне не помогает.

1 Ответ

2 голосов
/ 30 апреля 2020

Если PDF-файл находится среди ваших опубликованных c, stati c файлов, таких как src/main/resources/META-INF/resources в приложении Spring, это так просто, когда путь к файлу "sample.pdf" относительно src/main/resources/META-INF/resources.

Anchor anchor = new Anchor("sample.pdf", "Download PDF");
anchor.getElement().setAttribute("download", "downloaded-file-name.pdf");
add(anchor);

В противном случае вы можете использовать этот подход. В моем случае местоположение файла: src/main/resources/sample2.pdf.

StreamResource streamResource = new StreamResource("whatever.pdf", 
    () -> getClass().getResourceAsStream("/sample2.pdf"));
Anchor anchor = new Anchor(streamResource, "Download PDF");
anchor.getElement().setAttribute("download", "downloaded-other-name.pdf");
add(anchor);

Обратите внимание на начальную букву sh в /sample2.pdf, это важно.

Если мы не установим * Атрибут 1013 *, файл может открываться вместо загрузки под именем whatever.pdf.

Если мы установим атрибут download в пустую строку, он будет загружен под именем whatever.pdf. В противном случае он будет загружен под именем, указанным в атрибуте.

...