GWT:如何生成pdf保存/打开窗口?

时间:2011-12-07 10:02:31

标签: gwt pdf pdf-generation smartgwt

我在我的应用程序中使用GWT2.4版本。在这个我的应用程序中,我使用GWT控件创建了Form(如textbox,textaera)。

我也创建了表单的预览。在那个预览中我有pdf生成的按钮。 现在我想创建与浏览器(Mozilla / chrome)相同的处理pdf链接的行为。 例如,在Mozilla点击pdf链接时,它会在弹出窗口中要求保存或打开。

在调试时我发现了一个可以用来创建pdf的jar名称iText,我也希望在这里实现浏览器行为。 请帮帮我。 提前致谢。

1 个答案:

答案 0 :(得分:2)

将文件内容读入字节数组。

然后请求servlet或service,例如。这样:

Window.Location.replace("rest/downloadPdf");

该服务应返回具有正确内容类型的响应:

@Path("downloadPdf")
@GET
@Produces({"application/pdf"})
@Consumes(MediaType.TEXT_PLAIN)
public Response downloadPdf() throws Exception {    
    byte[] bytes = getYourPDFContents();    
    return Response
            .ok(bytes, MediaType.APPLICATION_OCTET_STREAM)
            .header("Content-Disposition", "attachment; filename=\"yourFile.pdf\"")
            .build();
}

然后,浏览器将显示另存为对话框。

这是Service的例子,您必须在项目中包含Jersey库才能使用我上面写的方法。