生成 pdf,并使用 HttpServletResponse(headers) 将其发送给用户

发布于 2024-12-21 06:11:06 字数 989 浏览 0 评论 0原文

欢迎大家。
我正在尝试创建一个 PDF 发送给用户,而不先将文件保存在我的服务器上。
我正在使用 Hibernate + struts2。 我的示例代码: CreatePDF.java (生成pdf的类) 方法 BuildPdf():

ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
    document = new Document();
    PdfWriter.getInstance(document,baos);
    document.open();
    buildPage(document, snippet, snippetContent);
    document.close();
    response.setContentType("application/pdf");
    response.setContentLength(baos.size());
    response.setHeader("Content-Disposition", "attachment;filename=document.pdf");
    ServletOutputStream out = response.getOutputStream();
    baos.writeTo(out);
    out.flush();
    response.flushBuffer();
} catch (Exception e) {
    Log4jUtil.debug(logger, "Can not buid pdf-file", e);
}

我的示例操作: 方法index():

pdf = new CreatePDF();
pdf.buildPdf(snippet, snippetContent);
return SUCCESS;

您可以检查我的代码是否有搜索错误吗?会不会有错误.... 请帮我。需要想法或示例代码来解决我的任务。

Welcome all.
I'm trying to create a PDF to send to user, without saving the file on my server first.
I'm using Hibernate + struts2.
My samples code:
CreatePDF.java (Class for generate pdf)
Method BuildPdf():

ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
    document = new Document();
    PdfWriter.getInstance(document,baos);
    document.open();
    buildPage(document, snippet, snippetContent);
    document.close();
    response.setContentType("application/pdf");
    response.setContentLength(baos.size());
    response.setHeader("Content-Disposition", "attachment;filename=document.pdf");
    ServletOutputStream out = response.getOutputStream();
    baos.writeTo(out);
    out.flush();
    response.flushBuffer();
} catch (Exception e) {
    Log4jUtil.debug(logger, "Can not buid pdf-file", e);
}

My sample action:
method index():

pdf = new CreatePDF();
pdf.buildPdf(snippet, snippetContent);
return SUCCESS;

Can you check my code please for search error? Could there be errors....
Please help me. Need ideas, or example code to solve my task.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾冷 2024-12-28 06:11:06

首先,Hibernate 在这里完全不相关。 Struts2 是相关的,但您没有使用它,您正在使用普通(低级)servlet API。这应该可行,但如果您的 Web 应用程序是围绕 Struts2 构建的,那么这不是推荐的方法。您应该使用 流结果

First, Hibernate is fully irrelevant here. Struts2 is relevant, but you are not using it, you are using plain (low level) servlet API. That should probably work, but if your webapp is built around Struts2, that's not the recommended way. You should instead use the Stream result

宫墨修音 2024-12-28 06:11:06

要创建 PDF 文档,您可以使用 Smart PDF Creator。只需点击几下即可创建专业的 PDF。您可以在这里免费试用:http://www.smartpdfcreator.com

For creating PDF documents, you can use Smart PDF Creator. It creates professional PDFs in a couple of clicks. You can try it for free here: http://www.smartpdfcreator.com

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文