name: 本地生成QR码 description: 使用本机CLI和运行时库在Bash和Node.js中本地生成QR码,无需外部API。
本地生成QR码
在本地机器上完全离线创建QR码(无需第三方QR API调用)。
何时使用
- 用户要求从文本、URL、钱包地址或有效负载生成QR码
- 隐私敏感的工作流,数据应保持本地
- 不应依赖外部服务的快速自动化管道
所需工具 / APIs
- 无需外部API
- Bash CLI选项:
qrencode - Node.js选项:
qrcode包
安装选项:
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y qrencode
# Node.js
npm install qrcode
技能
generate_qr_with_bash
直接从shell生成PNG和终端QR。
# 将文本编码为PNG
DATA="https://example.com/report?id=123"
qrencode -o qrcode.png -s 8 -m 2 "$DATA"
# 在终端打印QR(UTF-8块模式)
qrencode -t UTF8 "$DATA"
# SVG输出
qrencode -t SVG -o qrcode.svg "$DATA"
generate_qr_with_nodejs
import QRCode from 'qrcode';
const data = process.argv[2] || 'https://example.com';
async function main() {
await QRCode.toFile('qrcode.png', data, {
errorCorrectionLevel: 'M',
margin: 2,
width: 512
});
const svg = await QRCode.toString(data, { type: 'svg', margin: 2 });
await import('node:fs/promises').then(fs => fs.writeFile('qrcode.svg', svg));
const terminal = await QRCode.toString(data, { type: 'terminal' });
console.log(terminal);
console.log('Saved: qrcode.png, qrcode.svg');
}
main().catch(err => {
console.error('QR generation failed:', err.message);
process.exit(1);
});
运行:
node generate-qr.js "https://example.com/invoice/abc"
代理提示
您正在本地生成QR码,无需调用外部QR APIs。
使用Bash(qrencode)进行快速CLI生成或Node.js(qrcode包)进行程序化控制。
返回:
1) 使用的命令/代码,
2) 输出文件名(png/svg),
3) 简要验证说明(例如,“建议扫描测试”)。
如果依赖缺失,提供安装命令并重试。
最佳实践
- 保持有效负载简洁以提高扫描可靠性
- 至少使用错误纠正级别
M作为一般用途 - 导出PNG以兼容性,导出SVG以可缩放打印/web使用
- 生成后用扫描器验证
故障排除
qrencode: command not found→ 通过包管理器安装qrencode- Node导入错误 → 确保
npm install qrcode完成 - 密集/不清晰的QR图像 → 增加图像大小/框大小并减少有效负载长度
另请参阅
- pdf-manipulation.md — 将生成的QR图像合并到文档中