-1

我正在使用 openPDF 库通过 HttpServletResponse 将列表导出为 pdf。但是,Webflux 不支持 HttpServletResponse,所以有人可以指导我如何以反应方式编写它吗?

这是我使用的代码: https ://www.codejava.net/frameworks/spring-boot/pdf-export-example

我在 Webflux 中找到了一个将列表导出为 .csv 的示例,并尝试使代码适应该示例,但到目前为止我还没有运气。这是该示例的链接: https ://medium.com/@ victortemitope95/how-to-write-and-download-a-csv-file-in-spring-webflux-5df8d817a597

4

1 回答 1

0

无论您使用的是什么 PDF 库,最终您都可以将内容转换为java.io.ByteArrayOutputStream. 有了它,您可以创建一个org.springframework.http.ResponseEntity这样的(在本例中使用 Kotlin 和挂起函数):

@GetMapping("/pdf")
suspend fun pdf(): ResponseEntity<ByteArray> {
  val pdf: ByteArrayOutputStream = // get the PDF from your library
  
  return ResponseEntity.ok()
    .header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=example.pdf")
    .contentType(MediaType.APPLICATION_PDF)
    .body(pdf.toByteArray())
}

这是一个完整的教程视频。

于 2021-08-03T09:57:00.907 回答