javascript - 如何生成在服务器上运行的 PDF 页面

标签 javascript html pdf pdf-generation phantomjs

这项任务并不容易,因为我需要在单击按钮后创建页面的 PDF 版本。它具有复杂的dom结构,有许多元素绝对/相对定位,并且数据是动态加载的。我考虑过使用 Phantom.js 服务器来完成此任务,因为它可以生成 PDF,但这会带来一些问题;

  • phantomjs 可以从控制台运行(这在这里是不可能的,因为生成 PDF 必须在 UNIX 和 WIN 系统上都可用,并且只能从页面运行 shell 脚本)或使用它的内置服务器
  • 服务器与运行页面的服务器具有不同的域,因此会出现同源策略问题。我正在考虑使用带有 phantomjs 服务器地址的 iframe 作为 src 和我的页面 html 传入的参数,但参数太长并返回 413 错误。 JSONP 不起作用,因为它是为 GET 请求而构建的,并且会出现参数太长的相同问题。

我也考虑过在客户端生成它,但由于网站的复杂性,我可能需要很多天才能获得页面的正确表示(因为所有定位值都需要重新计算为 pts),并且它必须是一个通用的解决方案。

还有其他想法如何解决这个问题吗?

最佳答案

我研究了几种完成服务器端 PDF 生成的工具。

我尝试使用 Web SuperGoo 中的一个名为 abcPDF (.net) 的工具,但我一直遇到它无法工作的问题。

还有一个看起来效果更好的 iText,它有 .net 和 Java 版本。根据您使用的版本,它可以使用 AGPL、LGPL 和商业许可证。

我希望我能以不同的方式告诉你,但我不知道有什么方法可以轻松地将 HTML 转换为 PDF。这些库中的每一个都有一个 API,您必须针对该 API 进行编程来描述文档的外观。

关于javascript - 如何生成在服务器上运行的 PDF 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10535803/

相关文章:

javascript - 图片上传时调用表单提交的js函数

javascript - Android 2.X 上的数字 9

php - 如何通过PHP或imagemagick检测多页PDF?

pdf - 分离 PDF 文件中的图层

php - PDF 中的工具提示 : are they possible?

javascript - 如何将jpeg字符串转换为base64

javascript - 根据输入的字符动态增加输入类型文本文本框的宽度

javascript - 返回搜索到的字符串 + 上一个和下一个单词

html - 显示 :inline-block not allocating the space properly

javascript - 将大图像站点转换为 html/css/javascript 的最简单方法?