gpt4 book ai didi

java - 即时生成 PDF 文件

转载 作者:行者123 更新时间:2023-12-02 09:17:40 25 4
gpt4 key购买 nike

我基于 thymeleaf 模板创建了一个 pdf 文件,我实际上使用模板解析器、 Flying Saucer ,将文件写入输出流但由于我无法访问前端来定义客户端需要时不时生成的概要内容,我认为最好在服务器端生成 pdf 文件。所以我的问题是:

有没有办法获取写入数据的输出流并将其转换为动态写入,因此不会在本地存储中创建

这是我的业务逻辑的一部分:

os = new FileOutputStream(pdf);
ITextRenderer renderer = new ITextRenderer();
renderer.layout();
renderer.createPDF(os);

我在我的 Controller 中使用它,并在响应实体中使用附件内容属性

除此之外我愿意接受任何建议提前致谢

最佳答案

不久前,我在一个简单的 Java EE + JSF 项目中完成了类似的任务,以下是我的做法:

byte[] asPdf = .... (your pdf data)
String filename = "demo.pdf";
HttpServletResponse response = Faces.getResponse(); // Using Omnifaces in this example, but that is irrelevant

// Details: https://stackoverflow.com/a/9394237/7598851
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
response.setContentLength(asPdf.length);
response.setCharacterEncoding("UTF-8");

try (OutputStream output = response.getOutputStream()) {
output.write(asPdf);
} catch (IOException e) {
// ...
}

完整的项目是here ,相关代码在这个file

关于java - 即时生成 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58884991/

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