gpt4 book ai didi

java - 如何在play 2框架的scala模板页面中显示pdf文件?

转载 作者:行者123 更新时间:2023-12-01 12:04:05 25 4
gpt4 key购买 nike

我已经使用一些第3方库成功生成了pdf,但现在我陷入了如何使用scala模板在浏览器中显示生成的pdf文件的问题。任何帮助将不胜感激。提前致谢。

最佳答案

最简单的方法是使用内置 Controller 方法来提供文件。

Java解决方案:

File file = getYourPdfFile();
return ok(file);

ok 方法已重载并接受文件、流或字节数组。 Java 文档可以找到 here .

Scala 解决方案:

def serveFile(file: File, fileName: String) {
Ok.sendFile(
content = file,
fileName = _ => fileName
)
}

如果您想更好地控制响应,您可以手动构建它。下面有一个使用字节数组作为响应正文的示例:

def byteArrayToResult(pdfAsByteArray: Array[Byte], fileName: String): Result = {
val ticketInputStream = new ByteArrayInputStream(pdfAsByteArray)
val fileContent = Enumerator.fromStream(ticketInputStream)
val headers = Map(
CONTENT_LENGTH -> pdfAsByteArray.length.toString,
CONTENT_DISPOSITION -> s"attachment; filename=$fileName"
)
Result(ResponseHeader(200, headers), fileContent
).as("application/pdf")
}

根据保存生成文件的方式,您还可以使用 Enumerator.fromFile() 而不是 fromStream() 方法。您可以在 Scala documentation 中阅读有关整个概念的更多信息。 .

关于java - 如何在play 2框架的scala模板页面中显示pdf文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com