2012-05-22 139 views
1

我知道有一个类似的问题列表,但所有处理页面没有用户交互(静态,即使有些js可能在那里)。假设我们有一个用户可以进行交互的页面(例如svg而不是更改,或者带有深入分析的html表格 - 内容更改)。这些交互会改变页面。当进入问题时,在计算器中出现同样的情况...动态HTML页面到pdf

这个想法是添加一个按钮,“转换为pdf”以html的状态并发送给用户一个pdf版本(我们有一个Java服务器) 。

使用浏览器打印不是我正在寻找的答案:-)。

这是一个月球棒吗?

回答

1

您将不得不存储生成HTML视图的参数(即用户点击什么,选择什么等)。如果你可以有一个生成HTML视图的参数列表,你可以有一个方法接受参数列表(JSON post?),生成HTML视图并将它传递给你的PDF生成例程。我对Java库并不太熟悉,但是PHP有TCPDF可以使用html输出为你生成PDF。当然,也有Java库可以让你做同样的事情,或者你可以使用这些参数来获得可以迭代并使用你选择的PDF库输出的行/数组列表。

+0

的问题是,用户交互是不是真的参数(URL)但相互作用。在例子中,我添加的文本作为注释将被添加到“to PDF”......奇怪我同意:-) – ic3

+0

它们不一定是显示器的参数,但您需要等效参数,以便可以将交互转换为此类(即search = Search%20for%20this&expanded_categories = 1,2,5,20&....)。然后,您可以使用这些参数在内存中生成相同的显示,限制,页面等,并使用PDF库。 –

1

两个iTextPDFAspose.PDF将允许你这样做(我看过他们在两个不同的项目使用),但没有魔法,你将不得不做一些工作

的步骤大致有:

  1. 获取(字符串),你想用jQuery或innerHTML来打印
  2. 呼叫服务在服务器端将其转换为PDF文档的一部分
  3. [Serverside]使用基于whitlist的工具来清理hmtl(除非你想被黑客攻击)。 JSoup是伟大的。
  4. [Serverside集团]使用的iText或阅读Aspose API来创建从HTML PDF文档(这不是小事,你将不得不读取DOC)
  5. 下载文档
0

我也建议DocRaptor ,一个由我公司构建的HTML to PDF API,预期行为。

DocRaptor使用Prince XML生成PDF文件,因此可以生成比类似产品更高质量的结果。

使用我们的服务将PDF生成添加到您自己的Web应用程序与向我们的服务器发出HTTP POST请求一样简单。

下面是DocRaptor的主页的链接:

DocRaptor

和链接到我们的API文档:

DocRaptor API documentation

+0

我们需要一个可以脱机工作的解决方案(无需连接到您的服务器) – ic3