java - 在浏览器中获取 PDF 格式的响应

标签 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 中显示吗?

最佳答案

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

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

关于java - 在浏览器中获取 PDF 格式的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16029091/

相关文章:

php - 新行 (\r\n) 在电子邮件正文中不起作用

java - ActionListener 和 for 循环

java - file.setReadable(true) 之后文件不可读

java - 使用 Apache HttpClient 将原始字节添加到发布参数

json - 如何根据http-header内容类型进行mod_rewrite

java - 如何在 Websphere Portal 上显示来自 Struts portlet 的 Excel 内容

java - Java 中的泛型

java - Paths.get 与 Path.of

ruby-on-rails - request.env ['CONTENT_TYPE' ] 和 request.content_type 是什么,为什么有区别?

java - 更改 @Produces(...) 在 Jersey 生产的内容?