最常用的方法是生成PDF报告(JavaScript,node.js)?

Eri*_* Xu 17 javascript pdf-generation node.js

任何从事这类工作的人都可以描述一般过程吗?我现在很困惑.根据报告,我的意思是具有徽标,表格,页眉和页脚的视觉上吸引人的文档,并且将动态检索数据.

我看到的方法是:

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

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

  3. 在PDF源代码中编写模板并在服务器端填写数据.问题:编码很奇怪,例如,如果我这样做doc.text("1"),只有字符串"1"出现很多无法识别的字符.我对此非常困惑.

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

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

Pet*_*ons 16

我个人没有这样做,但我会尝试的第一件事是:

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

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

  • 1GB RAM 下 1000 个 html 页面需要多少钱? (2认同)

Jan*_*aha 10

作为jsreport团队的成员,我会试一试.

jsreport平台提供了多种生成pdf报告的方法.最常见的包括使用phantomjs将html转换为pdf.如果指定的话,jsreport还会编译和渲染把手或jsrender html模板,它可以嵌入图像,添加页眉/页脚,运行自定义javascripts等等.

您可以使用"Hello World Phantom Pdf"示例并查看您拥有的选项 https://playground.jsreport.net

完成游戏后,您可以在线使用jsreport下载并安装 jsreport服务器到您的公司.然后,您就可以调用其REST API并生成报告.

更多问题

  • jsreport将在pdf或html的响应中提供正确的内容类型.您可以让浏览器显示结果
  • 数据可以发送到jsreport api或通过自定义脚本进行检索


All*_*ice 4

我不确定最常见的方法是什么,但我个人喜欢创建一个 HTML 模板,将其填充到我的服务器端代码中,然后使用wkhtmltopdf将 HTML 转换为 PDF。如果您使用 .NET,您应该查看WkHtmlToXSharp(它是 wkhtmltopdf 的 .NET 包装器。)