在浏览器中以PDF格式获取响应

时间:2013-04-16 04:58:20

标签: java content-type

我想设置PDF输出的响应。我该如何实现这一目标?

我可以设置Excel输出并成功从浏览器中获取所需的Excel工作表,但对于PDF,我无法获得所需的输出。

对于Excel,以下代码可以正常工作

String excelContent = "an html table..";
getServletResponse().setContentType("“application/vnd.ms-excel");
getServletResponse().setHeader("Content-Disposition","inline; filename=" + pageTitle + ".xls");
PrintWriter ps = getServletResponse().getWriter();
ps.println(excelContent);

但对于PDF,我尝试将内容类型设置为PDF,但无法正确显示(即使在浏览器中打开PDF文件也不会显示任何内容)

String excelContent = "an html table..";
getServletResponse().setContentType("“application/pdf");
getServletResponse().setHeader("Content-Disposition","inline; filename=" + pageTitle + ".pdf");
PrintWriter ps = getServletResponse().getWriter();
ps.println(excelContent);

html表格无法在PDF中显示吗?

2 个答案:

答案 0 :(得分:1)

使用Flying Saucer渲染器非常简单。它需要HTML输入并返回PDF。您需要做的是将内容类型声明为PDF,将HTML生成为字符串,然后从Flying Saucer调用方法。

这是一个例子 xhtml to pdf servlet with flyingsaucer

答案 1 :(得分:0)

您正在将html上下文写入响应流。您需要将pdf格式写入响应。

您可以使用iText或Apache FOP等库来创建PDF格式。