我有一个从 servlet 转发后呈现的 JSP。现在我有一个来自 JSP 的 HTML,我想发布这个页面以生成 PDF。
据我了解,提交按钮只提交一个表单。但是,我需要提交原始 HTML 才能最终使用 FlyingSaucer 或类似的 PDF 创建器库。
使用我的 HTML 然后将 PDF 保存到文件的方法是什么?
如果我错了以及您对我的方法的看法,请纠正。任何建议将不胜感激。
编辑:对不起,我没有发布任何代码,但目前我在 servlet 中遇到了问题,以解决这个问题。
你基本上有两个选择:
让 JS 在提交时将当前 HTML DOM 树设置为(隐藏的)请求参数。
<form method="post" action="pdfservlet">
<input type="hidden" name="source" />
<input type="submit" value="generate" onclick="this.form.source.value = document.documentElement.outerHTML;" />
</form>
它pdfservlet
以request.getParameter("source")
.
让我们使用/pdfservlet
以编程方式请求所需的页面。URL
URLConnection
InputStream source = new URL("http://localhost:8080/context/someservlet").openStream();
// ...
JSESSIONID
如果您需要在同一会话中运行,请使用当前会话 ID设置必要的 cookie。
URLConnection connection = new URL("http://localhost:8080/context/someservlet").openConnection();
connection.setRequestProperty("Cookie", "JSESSIONID=" + request.getSession().getId());
InputStream source = connection.getInputStream();
// ...