【发布时间】:2012-05-19 03:10:03
【问题描述】:
这项任务并不容易,因为我需要在单击按钮后创建页面的 PDF 版本。它具有复杂的dom结构,许多元素绝对/相对定位,并且数据是动态加载的。我考虑过使用 Phantom.js 服务器来完成这项任务,因为它可以生成 PDF,但这会带来一些问题;
- phantomjs 可以从控制台运行(这里不可能,因为生成 PDF 必须在 UNIX 和 WIN 系统上都可用,并且只能从页面运行 shell 脚本)或使用它内置的服务器
- 服务器与运行页面的服务器具有不同的域,因此出现了同源策略问题。我正在考虑使用带有 phantomjs 服务器地址的 iframe 作为 src 和我的页面 html 传入参数,但参数太长并返回 413 错误。 JSONP 不起作用,因为它是为 GET 请求构建的,并且会出现参数过长的相同问题。
我也考虑过在客户端生成它,但由于网站的复杂性,我可能需要很多天才能获得页面的正确表示(因为所有定位值都需要重新计算为 pts),而且它必须是通用解决方案。
还有其他解决方法吗?
【问题讨论】:
-
你在服务器上运行什么?
-
它是一个带有mysql的apache,app本身是用ExtJs编写的纯javascript
-
啊,我在 .Net 上运行 DynamicPDF 和 Aspose,但我认为这对你没有多大帮助。
标签: javascript html pdf pdf-generation phantomjs