最常用的生成PDF报告的方法(JavaScript,node.js)
Most used approach to generate a PDF report (JavaScript, node.js)?
从事过类似工作的人能描述一下一般流程吗?我现在很困惑。我所说的报告是指一个具有视觉吸引力的文档,包含徽标、表格、页眉和页脚,并且数据将被动态检索。
我研究的方法是:
-
使用生成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或将其视为要保存为下载的文件。
作为jsreport团队的成员,我会尝试一下。
jsreport平台提供了多种生成pdf报告的方法。其中最常见的是使用无头chrome将html转换为pdf。jsreport还将编译和渲染handlebas或jsrender html模板(如果指定的话),它可以嵌入图像、添加页眉/页脚、运行自定义javascript等等。
你可以玩这些例子,看看你有什么选择https://playground.jsreport.net
当你完成游戏后,你可以在线使用jsreport,或者下载并安装jsreport服务器到你的公司。然后您就可以调用它的RESTneneneba API并生成报告了。
更多关于你的问题
- jsreport将在pdf或html的响应中提供正确的内容类型。你可以让浏览器显示结果
- 数据可以发送到jsreportapi或通过自定义脚本检索
我不确定最常见的方法是什么,但就我个人而言,我喜欢创建一个HTML模板,将其填充到服务器端代码中,然后使用wkhtmltopdf将HTML转换为PDF。如果您使用的是.NET,您应该查看WkHtmlToXSharp(它是wkhtmltopdf的.NET包装器)
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 解析特定的字符串Javascript(Node.js)
- JavaScript / node.js从模型中获取数据
- 如何根据JavaScript Node.js中的单个值动态拆分数组
- 使用 JavaScript/Node.js 实现插件架构
- JavaScript node.js 中 pug (jade) 模板上的动态对象键
- While循环使用JavaScript/node.js中的A+promise
- Javascript/Node AI-如何使用match从单词数组中重复单词
- JavaScript/node.js:尝试访问对象时获取NULL's在某个函数之外的属性
- Javascript Node.js Simplifying IF ELSE
- Javascript/Node/Twilio - ReferenceError: require is not defi
- Javascript/Node - 使用 for 循环将对象插入数组
- 使用 JavaScript(node.js “反向”正则表达式
- 匿名函数在Javascript(Node)中具有什么访问权限
- 用户输入 - Javascript Node js.
- 如何在 Javascript/Node 中测试 B 是否是 A 的“子类”
- 数组递增 Javascript / node js / mongodb.
- 如何在javascript(node-webkit)中“null”签入
- Javascript/Node.js我可以使用hashmap有选择地执行函数吗?
- ~~ 在 JavaScript/node.js 中做什么