1. 项目概述:Node-RED图表导出为PDF的实用场景
在工业自动化、物联网(IoT)和家庭智能化领域,Node-RED作为一款开源的流程编排工具,其可视化编程界面让非程序员也能快速搭建数据流逻辑。但在实际项目中,我们经常需要将设计好的流程图导出为PDF文档用于方案评审、操作手册编制或项目存档。原生Node-RED虽然提供流程导出功能,但直接生成PDF需要借助额外工具链。本文将详解三种经过实战验证的导出方案,包含从基础配置到高级定制的完整实现路径。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心方案对比与技术选型
2.1 浏览器打印方案(零配置方案)
最快捷的方式是利用现代浏览器的"打印为PDF"功能。在Chrome中打开Node-RED编辑器,通过Ctrl+P调出打印对话框,关键配置如下:
- 目标打印机:选择"另存为PDF"
- 布局:横向(Landscape)
- 边距:选择"无"
- 勾选"背景图形"选项(否则流程图背景会丢失)
注意:Edge浏览器在此场景下表现更优,能自动保持节点间的连接线样式,而Chrome可能需要手动调整缩放比例至80%以获得最佳显示效果。
2.2 无头浏览器自动化方案(Puppeteer)
对于需要批量导出的场景,推荐使用Puppeteer实现自动化:
javascript复制const puppeteer = require('puppeteer');
const fs = require('fs');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 加载本地Node-RED编辑界面
await page.goto('http://localhost:1880', {
waitUntil: 'networkidle2'
});
// 设置打印参数
await page.pdf({
path: 'flow.pdf',
format: 'A3',
landscape: true,
printBackground: true,
margin: { top: '0', right: '0',
