我知道有一个类似问题的列表,但所有处理页面都没有用户交互(静态,即使可能存在一些 js)。
假设我们有一个用户可以交互的页面(例如 svg 比更改,或带有向下钻取的 html 表 - 内容更改)。这些交互将改变页面。输入问题时在stackoverflow中也会发生同样的情况......
这个想法是添加一个按钮,“转换为 pdf”获取 html 的状态并向用户发送回 pdf 版本(我们有一个 Java 服务器)。
使用浏览器的打印不是我正在寻找的答案:-)。
这是月球上的一根棍子吗?
iTextPDF和Aspose.PDF都允许您这样做(我已经看到它们在两个不同的项目中使用),但是没有魔法,您必须做一些工作。
步骤大致是:
您必须存储生成 HTML 视图的参数(即用户单击的内容、他们所做的选择等)。如果你有一个生成 HTML 视图的参数列表,你可以有一个方法来接受参数列表(JSON 帖子?),生成 HTML 视图并将其传递给你的 PDF 生成例程。为此,我对 Java 库不太熟悉,但 PHP 有 TCPDF 可以采用 html 输出基本上为您生成 PDF。当然,有 Java 库可以让您做同样的事情,或者您可以使用参数来获取行/数组的列表,这些行/数组可以使用您选择的 PDF 库进行迭代和输出。
我还推荐 DocRaptor,这是我公司构建的 HTML 到 PDF API,Expected Behavior。
DocRaptor 使用 Prince XML 生成 PDF,因此比同类产品产生更高质量的结果。
使用我们的服务将 PDF 生成添加到您自己的 Web 应用程序就像向我们的服务器发出 HTTP POST 请求一样简单。
这是 DocRaptor 主页的链接:
以及指向我们 API 文档的链接: