任何从事此类工作的人都可以描述一般过程吗?我现在很困惑。报告是指具有 Logo 、表格、页眉和页脚的具有视觉吸引力的文档,并且数据将被动态检索。
我研究的方法是:
使用生成 PDF 的服务器端库(node.js 模块)。使用
Content-Type: application/pdf
发送字符串表示作为响应。 问题:我选择了 PDFKit,但它不起作用并且根本没有显示任何内容。它使用旧的 PDF 1.3。在客户端生成 PDF。 问题:最流行的库似乎是 jsPDF,但它不能生成看起来很复杂的文档。
用PDF源代码编写模板,在服务器端填写数据。 问题:编码很奇怪,例如如果我只是执行
doc.text("1")
,那么仅字符串“1”就会出现很多无法识别的字符。我对此感到非常困惑。
最后,如果有人提供可以帮助我理解编码的链接,那将非常有帮助!这让我非常困惑。
非常感谢任何类似任务的经验!
最佳答案
我没有亲自做过,但我会尝试的第一件事是:
- 在服务器端动态构建相应的 HTML 文档和 CSS
- 使用 phantomJS呈现该文档
- 告诉 phantomJS 将该文档转换为 PDF,保存在临时文件中
- 通过将临时 PDF 文件写入响应正文,将 PDF 作为 HTTP 响应发回
- 删除临时文件
如果您正在为内容类型、内容处置等问题苦苦挣扎,如果您在磁盘上有一个有效的 pdf 文件并且只需将该数据写入 HTTP 响应,您就不必担心这一点。使用正确的标题,您应该能够要求浏览器显示 PDF 或将其视为要保存为下载的文件。
关于javascript - 最常用的生成 PDF 报告的方法(JavaScript、node.js)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330835/