node-red导出图表PDF

所需组件和库

node-red-dashboard 组成可视可见Web界面

node-red-contrib-pdf导出PDF

用按钮来触发,打印出我们在web上的界面的图表PDF或者一些其他的东西

组件连线

node-red-dashboard button节点 > node-red-dashboard template > function 节点 >ode-red-contrib-pdf 生成PDF

程序功能

button 内容

点击按钮输出内容exportPDF用于触发后续内容

template 程序内容

javascript 复制代码
<script>
  (function(scope){
  scope.$watch('msg', function(msg){
    if(msg && msg.payload === "exportPDF"){
      const canvas = document.querySelectorAll('.nr-dashboard-chart canvas')[0];
      if(canvas){
        scope.send({ payload: canvas.toDataURL('image/png') });
      }
    }
  });
})(scope);
</script>

当外部给这个 ui_template 节点发送一条消息,且 msg.payload === "exportPDF" 时:

  • 去页面里找到第 0 个 图表(chart)的 <canvas>

  • 把这个 canvas 转成 base64 的 PNG 图片数据(dataURL)

  • scope.send() 发回 Node-RED 流程里(下游节点就能拿到图片)

function内容

javascript 复制代码
const img = msg.payload;
msg.payload = `<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body { font-family: Arial; text-align: center; }
img { width: 100%; }
</style>
</head>
<body>
<h2>图表</h2>
<img src="${img}">
<H1>生成时间:${new Date().toLocaleString()}</H1>
</body>
</html>`;

msg.filename = `C:/Users/xlk61/Desktop/导出chart/${list}.pdf`;


return msg;

msg.fliename 是导出pdf存放路径。

相关推荐
慧都小妮子17 小时前
Aspose.CAD for .NET 26.6 更新发布
pdf·.net·3d渲染·cad·pdf导出·ifc编辑
蝉蜕日记19 小时前
AccumuPDF高级版 v2.57 | 视图文转换PDF,合并分割压缩
android·智能手机·pdf·生活·软件需求
蓝创工坊Blue Foundry20 小时前
PDF 批量提取指定内容到 Excel:按字段整理多个 PDF 的方法
pdf·ocr·excel·文心一言·paddlepaddle·paddle
Am-Chestnuts1 天前
AI长回答批量导出PDF与长图:多轮内容整理和免费Markdown备份
人工智能·pdf·aigc
zyplayer-doc1 天前
研发接口文档怎么长期维护:zyplayer-doc把API、Markdown和变更记录放进同一个知识库
大数据·数据库·人工智能·笔记·pdf·ocr
蜡台2 天前
uniapp pdf文件预览组件
pdf·uni-app·合同·pdfh5
Am-Chestnuts2 天前
【无标题】
pdf
王莎莎-MinerU2 天前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
一棵星2 天前
LibreOffice Word 转 PDF 报错 “source file could not be loaded” 完整解决方案
pdf·word
协享科技2 天前
AI 读 PDF 的 2026 选型:ChatPDF、PDF.ai、通义智文之外,更要看证据链
人工智能·pdf