2011-12-13 70 views
0

欢迎所有人。
我想创建一个PDF发送给用户,而不是先保存在我的服务器上的文件。
我正在使用Hibernate + struts2。 我的样本代码: CreatePDF.java(班生成PDF) 方法BuildPdf():生成pdf,并使用HttpServletResponse(头文件)将其发送给用户

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); 
} 

我的样品动作: 法指数():

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

你可以检查我的代码,请搜索错误?有没有错误.... 请帮助我。需要想法或示例代码来解决我的任务。

+0

“发送用户PDF不保存在服务器机器中”是什么意思?你是否在自己的代码中看到自己的内容? –

+0

对不起,说不好英语......发送PDF到用户而不保存在服务器上。现在可以了解,写了什么? –

回答

1

首先,Hibernate在这里完全不相关。 Struts2是相关的,但你没有使用它,你正在使用普通(低级别)的servlet API。这应该可以起作用,但是如果你的webapp是围绕Struts2构建的,那么这不是推荐的方法。您应该改用Stream result

+0

谢谢你的回复。我的意思是我的应用程序是建立在这些技术上的。 我完成了对服务器的持久化并使用Stream结果。一切正常。但我想成为我不会将数据文件保存到服务器。 我建议使用线程和头文件发送文件。所以我试图实现它。 –

0

要创建PDF文档,您可以使用Smart PDF Creator。它通过几次点击创建专业PDF文件。您可以在这里免费试用:http://www.smartpdfcreator.com

+0

这是否允许您通过代码传递文档?从我所能看到的这一点来看,我不认为它可以。 –

+0

谢谢,你能理解问题吗?我正在创建PDF,但无法将其发送给用户。 –

相关问题