【问题标题】:Export JSP output to a PDF on click of a button单击按钮将 JSP 输出导出为 PDF
【发布时间】:2010-02-17 14:07:31
【问题描述】:

我创建了一个包含各种字段的 JSP。我想提供一个选项,在提交之前但在用户填写表单之后将页面导出为 PDF。

如何做到这一点?我在过去很多天都在努力解决这个问题,但无法获得解决方案。

【问题讨论】:

    标签: javascript jsp pdf-generation


    【解决方案1】:

    您可能想了解 FlyingSaucer 项目。它是一种从 XML 文档,特别是从相当严格的 XHTML doctype 生成 PDF 文件的机制。它确实工作得很好,并且它支持一些 CSS3 功能来处理诸如页面标题、文档内书签(如链接)之类的事情,并且通常在 CSS 规则方面表现得非常好。我认为它不会形成,但如果它最终成为非交互式文档,你可能会伪造它。

    链接:http://code.google.com/p/flying-saucer//

    (如果不清楚,这将是一个服务器端解决方案。必须发布表单,您的服务器将构建 PDF 并将其发送回客户端。)

    【讨论】:

      【解决方案2】:

      或者只是使用 AJAX 提交表单。用户单击“生成 PDF”或其他任何内容,然后 AJAX 发布将表单数据发送到服务器并返回生成的 PDF。该提交可以去其他地方而不是处理表单数据的服务/servlet。

      【讨论】:

        【解决方案3】:

        只需使用 Firefox 3.5 中的打印选项。它具有打印到 PDF 文件的选项。或者,您可以使用 PDFCreator 或其他一些写入 PDF 文件而不是在纸上打印的虚拟打印机软件。

        【讨论】:

        • 让我猜猜:您要么在 Mac 上,要么安装了 PDF 打印机。我在 Vista 上运行 FF 3.6,但没有看到 PDF 打印机。您通常需要安装 PDF 打印机才能使用此类功能。
        • 其实我不是Linux。您的意思是 Windows 版本的 Firefox 中没有“打印到文件”选项?
        • 没错。但是,您可以获得一个看起来像 Windows 打印机条目的驱动程序,而实际上充当打印到文件的网关。其中一些可能是免费的,而另一些则需要花钱。
        • 是的,提供了该选项。但此外还需要创建 PDF 选项。 pdf 应该是 JSP 的蓝图。我的意思是所有带有用户输入值的文本框。
        【解决方案4】:

        我想在提交之前但在用户填写表单之后提供将页面导出为 PDF 的选项。

        这在服务器端是不可能的,因为信息还没有提交到服务器端。您唯一的选择是浏览器功能和用户如何使用它们的知识。

        如果您可以接受将流程更改为提交到某个结果页面并提供将当前结果页面导出为 PDF 文件的链接,则将 this answeriText 结合使用。

        【讨论】:

        • ok.. 那么提交后是否可以在本地指定位置创建pdf? pdf 应该是 JSP 的蓝图。我的意思是所有带有用户输入值的文本框。
        • 仅在服务器端。您无法控制文件在客户端的保存位置。
        【解决方案5】:

        如果您尝试输出报告,您可以查看显示表:http://displaytag.sourceforge.net/1.2/。它带有一个简单的 servlet 过滤器,可让您单击一个简单的链接并导出为 pdf、excel 等。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-06-10
          • 2017-05-27
          • 2012-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多