【发布时间】:2010-02-17 14:07:31
【问题描述】:
我创建了一个包含各种字段的 JSP。我想提供一个选项,在提交之前但在用户填写表单之后将页面导出为 PDF。
如何做到这一点?我在过去很多天都在努力解决这个问题,但无法获得解决方案。
【问题讨论】:
标签: javascript jsp pdf-generation
我创建了一个包含各种字段的 JSP。我想提供一个选项,在提交之前但在用户填写表单之后将页面导出为 PDF。
如何做到这一点?我在过去很多天都在努力解决这个问题,但无法获得解决方案。
【问题讨论】:
标签: javascript jsp pdf-generation
您可能想了解 FlyingSaucer 项目。它是一种从 XML 文档,特别是从相当严格的 XHTML doctype 生成 PDF 文件的机制。它确实工作得很好,并且它支持一些 CSS3 功能来处理诸如页面标题、文档内书签(如链接)之类的事情,并且通常在 CSS 规则方面表现得非常好。我认为它不会形成,但如果它最终成为非交互式文档,你可能会伪造它。
链接:http://code.google.com/p/flying-saucer//
(如果不清楚,这将是一个服务器端解决方案。必须发布表单,您的服务器将构建 PDF 并将其发送回客户端。)
【讨论】:
或者只是使用 AJAX 提交表单。用户单击“生成 PDF”或其他任何内容,然后 AJAX 发布将表单数据发送到服务器并返回生成的 PDF。该提交可以去其他地方而不是处理表单数据的服务/servlet。
【讨论】:
只需使用 Firefox 3.5 中的打印选项。它具有打印到 PDF 文件的选项。或者,您可以使用 PDFCreator 或其他一些写入 PDF 文件而不是在纸上打印的虚拟打印机软件。
【讨论】:
我想在提交之前但在用户填写表单之后提供将页面导出为 PDF 的选项。
这在服务器端是不可能的,因为信息还没有提交到服务器端。您唯一的选择是浏览器功能和用户如何使用它们的知识。
如果您可以接受将流程更改为提交到某个结果页面并提供将当前结果页面导出为 PDF 文件的链接,则将 this answer 与 iText 结合使用。
【讨论】:
如果您尝试输出报告,您可以查看显示表:http://displaytag.sourceforge.net/1.2/。它带有一个简单的 servlet 过滤器,可让您单击一个简单的链接并导出为 pdf、excel 等。
【讨论】: