我有一个从servlet转发后呈现的JSP。既然我有一个来自JSP的HTML,我想发布这个页面以生成PDF。
根据我的理解,提交按钮只提交表格。但是,我需要提交原始HTML以最终使用FlyingSaucer或类似的PDF创建器库。
使用我的HTML然后将PDF保存到文件的方法是什么?
如果我错了以及您对我的方法的看法,请发信息以纠正错误。任何建议都将不胜感激。
编辑:对不起,我没有发布任何代码,但目前我已经在servlet中找到了一个墙,以解决这个问题。
答案 0 :(得分:1)
你基本上有两种选择:
让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();
// ...
如果您需要在同一会话中运行,请使用当前会话ID设置必要的JSESSIONID
Cookie。
URLConnection connection = new URL("http://localhost:8080/context/someservlet").openConnection();
connection.setRequestProperty("Cookie", "JSESSIONID=" + request.getSession().getId());
InputStream source = connection.getInputStream();
// ...