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存放路径。

相关推荐
asdzx671 天前
使用 Python 为 PDF 添加页码 (详细教程)
python·pdf·页码
小婷资料库1 天前
2025年新高考二卷数学真题试卷及答案解析电子版PDF
pdf·高考
南风微微吹1 天前
2015-2025年英语六级历年真题及答案解析电子版PDF(含听力音频)
pdf·英语六级
小为资料库1 天前
2026年初级社会工作者考试历年真题及答案解析电子版pdf(2010-2025年)
pdf
AI玫瑰助手1 天前
PDF 转 Markdown 主力方案怎么选:PaddleOCR-VL-1.5、MinerU、HunyuanOCR 与 MonkeyOCR 实测对比
pdf·大模型·知识库·表格·md·文字识别·paddleocr
其实秋天的枫2 天前
【2026年5月】初级会计师考试真题试卷及答案PDF
经验分享·pdf
小为资料库2 天前
英语六级听力历年真题汇总电子版PDF(含听力音频mp3、答案解析及听力原文)
pdf·音视频
usdoc文档预览2 天前
国产化踩坑:Vue3 / React / 小程序如何免插件实现 OFD 及复杂 Office 文档同屏预览
前端·javascript·react.js·小程序·pdf·word·office文件在线预览
小婷资料库2 天前
河北省中考历年真题及答案解析9科全电子版PDF(2008-2025年)
pdf
优化控制仿真模型2 天前
【2026年5月最新】初级会计师考试真题试卷及答案PDF
经验分享·pdf