Если 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
. В противном случае он будет загружен под именем, указанным в атрибуте.