如何从 Vaadin Flow App 下载 PDF?
How to download a PDF from Vaadin Flow App?
如何在 Vaadin 中下载 pdf 文件?它似乎与锚按钮有关,但不知道如何下载它。
我查看了多种资源,但 none 对我有所帮助。这是一个预先编写的 pdf,不是动态创建的,因此消除了一堆问题。 This one是围绕Vaadin7设计的,对我没有帮助。
如果PDF在你的public静态文件中,比如Spring应用中的src/main/resources/META-INF/resources
,就这么简单,其中文件路径"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);
请注意 /sample2.pdf
中的前导斜线,这很重要。
如果我们不设置 download
属性,文件可能会被打开而不是下载,名称为 whatever.pdf
.
如果我们将 download
属性设置为空字符串,它将以名称 whatever.pdf
下载。否则,它将以我们在属性中提供的名称下载。
如何在 Vaadin 中下载 pdf 文件?它似乎与锚按钮有关,但不知道如何下载它。
我查看了多种资源,但 none 对我有所帮助。这是一个预先编写的 pdf,不是动态创建的,因此消除了一堆问题。 This one是围绕Vaadin7设计的,对我没有帮助。
如果PDF在你的public静态文件中,比如Spring应用中的src/main/resources/META-INF/resources
,就这么简单,其中文件路径"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);
请注意 /sample2.pdf
中的前导斜线,这很重要。
如果我们不设置 download
属性,文件可能会被打开而不是下载,名称为 whatever.pdf
.
如果我们将 download
属性设置为空字符串,它将以名称 whatever.pdf
下载。否则,它将以我们在属性中提供的名称下载。