1. 项目概述:Node-RED图表导出为PDF的实用方案
在工业自动化和物联网领域,Node-RED作为一款流行的可视化编程工具,其流程图(Flows)承载着关键的业务逻辑。但在项目交付、文档归档或团队协作时,我们经常需要将这些动态流程图转换为静态PDF文档。本文将详细介绍三种经过实战验证的导出方法,涵盖从基础配置到高级定制的完整解决方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心方法解析与对比
2.1 浏览器原生打印方案
这是最快捷的入门级方案,适合简单场景:
- 在Node-RED编辑器中打开目标流程图
- 使用快捷键组合(Windows: Ctrl+P, Mac: Command+P)
- 在打印对话框中选择"另存为PDF"
- 调整关键参数:
- 缩放比例建议设为100%
- 勾选"背景图形"选项(否则节点颜色会丢失)
- 页眉页脚建议关闭
注意:Chrome浏览器在此方案下表现最佳,Edge可能丢失连线箭头样式
2.2 专用PDF导出节点方案
对于需要批量处理的专业用户,推荐安装node-red-contrib-export-flow节点:
bash复制npm install node-red-contrib-export-flow
配置步骤:
- 在流程中插入export节点
- 通过msg.payload指定目标流程ID
- 设置导出参数:
json复制{
"format": "A4",
"orientation": "landscape",
"margin": "10mm"
}
- 触发节点后PDF将保存在
/home/pi/.node-red/export/目录
实测导出速度比浏览器方案快3-5倍,且支持命令行调用实现自动化导出。
2.3 高保真截图转PDF方案
当需要保留UI交互状态时,可采用:
- 使用Puppeteer无头浏览器:
javascript复制const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
awai
