在JSP中将原始字节作为PDF嵌入 [英] Embed raw bytes as a PDF in JSP

查看:129
本文介绍了在JSP中将原始字节作为PDF嵌入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个bean,其中包含应用户要求生成的PDF的原始字节.我想向用户显示此PDF,而无需将PDF文件真正保留在服务器上.

I have a bean with the raw bytes of a PDF that is generated at the user's request. I want to display this PDF to the user without really persisting the PDF file on my server.

在我的jsp中,我尝试了类似

In my jsp I have tried tags like

<object data="#{bean.pdfBytes}" type="application/pdf" ></object>
<object type="application/pdf" width="600" height="400">
    <h:outputFormat value="#{bean.pdfBytes}" escape="false"/>
</object>

但是这非常失败.任何帮助,将不胜感激.预先感谢.

but this fails terribly. Any help would be appreciated. Thanks in advance.

推荐答案

我想向用户显示此PDF,而无需将PDF文件真正保留在服务器上.

将其写入响应的输出流.假设您正在使用iText生成PDF,并将响应的输出流传递到PdfWrter#getInstance().

Write it to the output stream of the response. Let's assume that you're using iText to generate the PDF, pass the response's output stream to PdfWrter#getInstance().

public void download() throws IOException {
    FacesContext context = FacesContext.getCurrentInstance();
    HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");

    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
    document.open();
    // Build document.

    context.responseComplete();
}

但是,这将在浏览器中完整显示PDF.如果要进行另存为对话框,只需将标题中的inline部分更改为attachment.或者,如果您真的想将其嵌入到<object>中,则需要创建 servlet 并执行doGet()方法中的上述response作业,最后让<object>的URL指向该servlet.

This will however display the PDF in its entirety in the browser. If you want a Save As dialogue, just change the inline part in the header to attachment. Or if you really want to have it embedded in an <object>, then you'd need to create a servlet and do the above response job inside the doGet() method and finally let <object>'s URL point to that servlet.

这篇关于在JSP中将原始字节作为PDF嵌入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆