在servlet中获取原始HTML以生成PDF文件

时间:2013-08-23 15:49:28

标签: java html jsp servlets pdf

我有一个从servlet转发后呈现的JSP。既然我有一个来自JSP的HTML,我想发布这个页面以生成PDF。

根据我的理解,提交按钮只提交表格。但是,我需要提交原始HTML以最终使用FlyingSaucer或类似的PDF创建器库。

使用我的HTML然后将PDF保存到文件的方法是什么?

如果我错了以及您对我的方法的看法,请发信息以纠正错误。任何建议都将不胜感激。

编辑:对不起,我没有发布任何代码,但目前我已经在servlet中找到了一个墙,以解决这个问题。

1 个答案:

答案 0 :(得分:1)

你基本上有两种选择:

  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")

  2. 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();
    // ...