如何生成以 PDF 形式在服务器上运行的页面
How to generate page running on server as a PDF
这项任务并不容易,因为我需要在单击按钮后创建页面的PDF版本。它具有复杂的dom结构,许多元素绝对/相对定位,并且数据是动态加载的。我想过使用 Phantom.js 服务器来完成此任务,因为它可以生成 PDF,但这会带来一些问题;
- phantomjs可以从控制台运行(这在这里是不可能的,因为生成PDF必须在UNIX和WIN系统上可用,并且只能从页面运行shell脚本(或使用它的内置服务器 服务器
- 与运行页面的服务器具有不同的域,因此同源策略问题 apear。我正在考虑使用带有 phantomjs 服务器地址的 iframe 作为 src 和我的页面 html 在参数中传递,但参数太长并返回 413 错误。JSONP 不起作用,因为它是为 GET 请求构建的,并且出现了参数过长的相同问题。
我也考虑过在客户端生成它,但由于网站的复杂性,我可能需要很多天才能正确表示页面(因为所有定位值都需要重新计算为 pts(,并且它必须是一个通用解决方案。
还有其他想法如何解决这个问题吗?
我已经研究了几种工具来完成服务器端PDF生成。
我尝试使用来自Web SuperGoo的abcPDF(.net(,但我一直遇到无法正常工作的问题。
还有另一个似乎工作得更好的称为iText,在.net和Java版本中都有。 根据您使用的版本,它可用于 AGPL、LGPL 和商业许可证。
我希望我能以不同的方式告诉你,但我不知道有什么方法可以轻松地从 HTML 转换为 PDF。 这些库中的每一个都有一个 API,您必须针对该 API 进行编程以描述文档的外观。
使用 PDF 打印机怎么样?根据您的系统,可能会有内置的PDF打印机,或者如果使用Windows,您可以查看PDFCreator
使用
Ajax 将整个 DOM POST
到服务器,将其作为 PDF(使用 phantomjs(进行翻录,在 JSON 响应中发回服务器 URL(和随机数(怎么样? 然后,您可以创建下载链接或自动启动下载。 这样行得通吗?
相关文章:
- Meteor如何运行服务器端python脚本
- "无法获取/null”;当使用nodejs运行服务器时
- 在客户端 Javascript 方法之后运行服务器方法
- grunt 命令在配置 EaselJS 项目时不运行服务器
- 在与运行服务器脚本的驱动器不同的驱动器中打开文件
- C#/ASP-web,ASP:在客户端执行复选框消息框,如果是,则运行服务器端代码
- 在使用nodejs运行服务器端时,无法加载角度控制器文件
- 为什么在 React 中.js文档(“教程”部分)描述了运行服务器的必要性
- 从嵌套的 jquery 对话框运行服务器端方法
- 运行服务器端 Javascript
- 在JS中运行服务器端python:pico的困难
- 是否可以在node.js服务器上设置一个运行(服务器端)的socket.io客户端
- NodeJS:一直在运行服务器
- 当我在django中运行服务器时,我收到了这个请求错误,i'我一直在使用引导程序
- 如何使用HtmlService运行服务器端函数
- 在使用javascript向下拉列表添加项目并运行服务器端代码后,无效的回发或回调参数
- 如何运行服务器端JS
- 有没有办法从浏览器运行服务器或点对点?
- 如何在客户端浏览器中运行服务器端javascript
- 当我需要运行服务器端代码时,我如何响应按钮的单击(不提交页面)?