javascript - 最常用的生成 PDF 报告的方法(JavaScript、node.js)?

标签 javascript node.js pdf-generation

任何从事此类工作的人都可以描述一般过程吗?我现在很困惑。报告是指具有 Logo 、表格、页眉和页脚的具有视觉吸引力的文档,并且数据将被动态检索。

我研究的方法是:

  1. 使用生成 PDF 的服务器端库(node.js 模块)。使用 Content-Type: application/pdf 发送字符串表示作为响应。 问题:我选择了 PDFKit,但它不起作用并且根本没有显示任何内容。它使用旧的 PDF 1.3。

  2. 在客户端生成 PDF。 问题:最流行的库似乎是 jsPDF,但它不能生成看起来很复杂的文档。

  3. 用PDF源代码编写模板,在服务器端填写数据。 问题:编码很奇怪,例如如果我只是执行 doc.text("1"),那么仅字符串“1”就会出现很多无法识别的字符。我对此感到非常困惑。

最后,如果有人提供可以帮助我理解编码的链接,那将非常有帮助!这让我非常困惑。

非常感谢任何类似任务的经验!

最佳答案

我没有亲自做过,但我会尝试的第一件事是:

  1. 在服务器端动态构建相应的 HTML 文档和 CSS
  2. 使用 phantomJS呈现该文档
  3. 告诉 phantomJS 将该文档转换为 PDF,保存在临时文件中
  4. 通过将临时 PDF 文件写入响应正文,将 PDF 作为 HTTP 响应发回
  5. 删除临时文件

如果您正在为内容类型、内容处置等问题苦苦挣扎,如果您在磁盘上有一个有效的 pdf 文件并且只需将该数据写入 HTTP 响应,您就不必担心这一点。使用正确的标题,您应该能够要求浏览器显示 PDF 或将其视为要保存为下载的文件。

关于javascript - 最常用的生成 PDF 报告的方法(JavaScript、node.js)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330835/

相关文章:

javascript - 扩展 Error 对象时是否需要 super(originalError)?

javascript - 以事件驱动的方式编写异步代码

javascript - NodeJS 中的 worker 是什么

java - 如何在 iText 的 FontFactory.register 中加载自定义字体

html - Rails 从 html 生成 PDF

javascript - 使用 CSS 过渡将元素设置为显示和加宽

javascript - 确保 TD 输入值不超过之前的 TD 值

javascript - FlatList contentContainerStyle -> justifyContent : 'center' causes issues with scrolling

javascript - 滑动 slider ...删除箭头

objective-c - UITextView 未显示在生成的 PDF 上