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

任何人都可以这样描述一般过程吗? 我现在很困惑。 通过报告,我的意思是一个具有标志,表格,页眉和页脚的视觉吸引力的文档,数据将被dynamic地检索。

我看到的方法是:

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

  2. 在客户端生成PDF。 问题:最受欢迎的图书馆似乎是jsPDF,但它不能生成复杂的文档。

  3. 在PDF源代码中编写模板并在服务器端填写数据。 问题:编码是奇怪的,例如,如果我只是做doc.text("1") ,很多不可识别的字符只出现string“1”。 我对此很困惑。

最后,如果有人提供了一个可以帮助我理解编码的链接,这将是非常有帮助的! 这对我来说是超级混乱。

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

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

  1. 在服务器端dynamic构build适当的HTML文档和CSS
  2. 使用phantomJS来渲染该文档
  3. 告诉phantomJS将该文档转换为PDF,保存在临时文件中
  4. 通过将临时PDF文件写入响应主体来发送PDF作为HTTP响应
  5. 删除临时文件

如果你在内容types,内容configuration等方面挣扎,你不应该担心,如果你有一个有效的PDF文件在磁盘上,只是写这个数据到HTTP响应。 使用正确的标题,您应该能够请求浏览器显示PDF或将其作为文件保存为下载。

作为jsreport团队的成员,我会给它一个镜头。

jsreport平台提供了多种方式来生成pdf报告。 其中最常见的包括使用phantomjs将html转换为pdf。 jsreport也将编译和渲染句柄或jsrender的html模板,如果指定的话,它可以embedded图像,添加页眉/页脚,运行自定义javascripts和更多。

你可以玩“Hello World Phantom Pdf”的例子,看看你拥有的选项https://playground.jsreport.net

当你玩完了 ,你可以使用jsreport在线或下载并安装 jsreport服务器到您的公司。 然后准备调用其REST API并生成报告。

更多的是你的问题

  • jsreport将在PDF或HTML的响应中提供正确的内容types。 你可以让浏览器显示结果
  • 数据可以发送到jsreport API或通过自定义脚本检索

我不知道最常用的方法是什么,但是我个人喜欢创build一个HTML模板,将其填充到我的服务器端代码中,然后使用wkhtmltopdf将HTML转换为PDF。 如果你正在使用.NET,你应该检查出WkHtmlToXSharp (这是一个.NET包装wkhtmltopdf。)