3分钟学会用JsBarcode生成专业条形码:浏览器和Node.js都适用

张开发
2026/5/10 9:46:52 15 分钟阅读

分享文章

3分钟学会用JsBarcode生成专业条形码:浏览器和Node.js都适用
3分钟学会用JsBarcode生成专业条形码浏览器和Node.js都适用【免费下载链接】JsBarcodeBarcode generation library written in JavaScript that works in both the browser and on Node.js项目地址: https://gitcode.com/gh_mirrors/js/JsBarcode还在为项目中需要生成条形码而烦恼吗 今天我要介绍一个超实用的JavaScript条形码生成库——JsBarcode这个库能让你在3分钟内轻松生成各种格式的条形码而且完全免费、开源支持浏览器和Node.js环境 快速上手指南5步创建你的第一个条形码JsBarcode是一个轻量级的JavaScript条形码生成器支持多种条形码格式无需任何外部依赖即可在Web环境中使用。下面让我们一步步创建第一个条形码1. 安装JsBarcode首先通过npm或CDN引入JsBarcodenpm install jsbarcode --save或者直接在HTML中引入script srchttps://cdn.jsdelivr.net/npm/jsbarcodelatest/dist/JsBarcode.all.min.js/script2. 创建HTML容器在HTML中添加一个条形码容器可以是svg、canvas或img元素svg idmyBarcode/svg !-- 或者 -- canvas idmyBarcode/canvas !-- 或者 -- img idmyBarcode/3. 生成简单条形码使用一行JavaScript代码生成条形码JsBarcode(#myBarcode, 123456789012);4. 自定义条形码样式JsBarcode提供了丰富的自定义选项JsBarcode(#myBarcode, 123456789012, { format: CODE128, width: 3, height: 100, displayValue: true, font: Arial, fontSize: 20, background: #ffffff, lineColor: #000000 });5. 查看结果打开浏览器你就能看到生成的条形码了就是这么简单 核心功能展示支持10种条形码格式JsBarcode的强大之处在于它支持多种行业标准条形码格式满足不同场景需求 零售行业常用格式EAN-13国际商品编码13位EAN-8小型商品编码8位UPC-A北美商品编码12位UPC-E压缩版UPC编码6位 物流与仓储格式CODE128高密度工业编码支持A/B/C三种子集ITF交插二五码ITF-14物流包装编码 医疗与特殊应用Pharmacode药品编码Codabar图书馆、血库专用CODE39字母数字编码MSI仓库库存管理 模块化设计你可以按需引入特定格式的条形码减小打包体积!-- 仅引入EAN/UPC格式 -- script srcJsBarcode.ean-upc.min.js/script !-- 仅引入CODE128格式 -- script srcJsBarcode.code128.min.js/script 实际应用案例电商库存管理系统让我们看一个真实的电商库存管理系统中的条形码应用场景商品入库模块// 为每个商品生成唯一条形码 function generateProductBarcode(productId, productName) { const canvas document.createElement(canvas); JsBarcode(canvas, productId, { format: EAN13, width: 2, height: 80, displayValue: true, text: productName, fontSize: 14, textMargin: 5 }); return canvas.toDataURL(image/png); } // 批量生成商品标签 const products [ { id: 123456789012, name: 高端蓝牙耳机 }, { id: 234567890123, name: 无线充电器 }, { id: 345678901234, name: 智能手表 } ]; products.forEach(product { const barcodeDataUrl generateProductBarcode(product.id, product.name); // 将base64图片保存或打印 console.log(${product.name} 条形码已生成:, barcodeDataUrl); });物流追踪系统// 生成物流单号条形码 function generateTrackingBarcode(trackingNumber) { return JsBarcode(#trackingBarcode, trackingNumber, { format: CODE128, width: 2, height: 60, displayValue: true, font: Courier New, fontSize: 16, margin: 15 }); } // 批量打印物流标签 const trackingNumbers [TRK001, TRK002, TRK003]; trackingNumbers.forEach(trackingNumber { // 每个物流单生成独立的条形码标签 generateTrackingBarcode(trackingNumber); // 这里可以连接打印机进行打印 }); 配置技巧让条形码更美观实用1. 响应式条形码设计// 根据容器宽度自动调整条形码大小 function responsiveBarcode(elementId, value) { const container document.getElementById(elementId); const containerWidth container.clientWidth; JsBarcode(#${elementId}, value, { format: CODE128, width: Math.max(1, containerWidth / 200), // 动态计算宽度 height: 80, displayValue: true, fontSize: Math.max(12, containerWidth / 50) // 动态字体大小 }); } // 窗口大小变化时重新生成 window.addEventListener(resize, () { responsiveBarcode(myBarcode, 123456789012); });2. 批量生成与导出// 批量生成多个条形码 function batchGenerateBarcodes(dataArray, containerId) { const container document.getElementById(containerId); container.innerHTML ; // 清空容器 dataArray.forEach((item, index) { // 创建条形码容器 const svg document.createElementNS(http://www.w3.org/2000/svg, svg); svg.id barcode-${index}; svg.style.margin 10px; container.appendChild(svg); // 生成条形码 JsBarcode(#barcode-${index}, item.value, { format: item.format || CODE128, width: 2, height: 60, displayValue: true, text: item.label || item.value, fontSize: 14 }); }); } // 导出为图片 function exportBarcodesAsImage() { const svgs document.querySelectorAll(svg); svgs.forEach((svg, index) { const canvas document.createElement(canvas); const ctx canvas.getContext(2d); // 将SVG转换为Canvas const svgData new XMLSerializer().serializeToString(svg); const img new Image(); img.onload function() { canvas.width img.width; canvas.height img.height; ctx.drawImage(img, 0, 0); // 下载图片 const link document.createElement(a); link.download barcode-${index}.png; link.href canvas.toDataURL(image/png); link.click(); }; img.src data:image/svgxml;base64, btoa(svgData); }); }3. Node.js服务端生成// Node.js环境中使用Canvas生成条形码 const JsBarcode require(jsbarcode); const { createCanvas } require(canvas); const fs require(fs); function generateBarcodeOnServer(value, filename) { // 创建Canvas const canvas createCanvas(300, 150); // 生成条形码 JsBarcode(canvas, value, { format: CODE128, width: 2, height: 100, displayValue: true, fontSize: 20 }); // 保存为文件 const buffer canvas.toBuffer(image/png); fs.writeFileSync(filename, buffer); console.log(条形码已保存到: ${filename}); } // 生成多个条形码 generateBarcodeOnServer(123456789012, barcode1.png); generateBarcodeOnServer(987654321098, barcode2.png);❓ 常见问题解答Q1: JsBarcode支持中文吗A:是的JsBarcode支持在条形码下方显示中文文本。只需在text选项中设置中文字符即可JsBarcode(#barcode, 123456789012, { text: 商品名称高端蓝牙耳机, font: Microsoft YaHei, sans-serif });Q2: 如何验证条形码的有效性A:JsBarcode内置了验证功能可以通过valid回调函数处理JsBarcode(#barcode, 12345, { format: EAN13, valid: function(valid) { if (!valid) { console.error(无效的EAN13编码); // 显示错误信息或使用备用编码 } } });Q3: 条形码生成太慢怎么办A:对于批量生成场景建议使用Web Worker在后台线程生成缓存已生成的条形码图片使用更轻量的格式如CODE39比CODE128更快Q4: 如何在React/Vue/Angular中使用A:JsBarcode与主流框架完美兼容React示例import React, { useEffect, useRef } from react; import JsBarcode from jsbarcode; function BarcodeComponent({ value }) { const barcodeRef useRef(null); useEffect(() { if (barcodeRef.current) { JsBarcode(barcodeRef.current, value, { format: CODE128, width: 2, height: 100 }); } }, [value]); return svg ref{barcodeRef} /; }Vue示例template svg refbarcode/svg /template script import JsBarcode from jsbarcode; export default { props: [value], mounted() { JsBarcode(this.$refs.barcode, this.value, { format: CODE128, width: 2, height: 100 }); }, watch: { value(newValue) { JsBarcode(this.$refs.barcode, newValue, { format: CODE128, width: 2, height: 100 }); } } } /script 最佳实践建议1. 选择合适的条形码格式零售商品使用EAN-13或UPC-A物流追踪使用CODE128支持字母数字库存管理使用CODE39或ITF医疗药品使用Pharmacode2. 优化性能// 预加载常用条形码 const barcodeCache new Map(); function getCachedBarcode(value, options) { const cacheKey ${value}-${JSON.stringify(options)}; if (barcodeCache.has(cacheKey)) { return barcodeCache.get(cacheKey); } const canvas document.createElement(canvas); JsBarcode(canvas, value, options); const dataUrl canvas.toDataURL(image/png); barcodeCache.set(cacheKey, dataUrl); return dataUrl; }3. 错误处理function safeGenerateBarcode(elementId, value, options {}) { try { JsBarcode(#${elementId}, value, { format: auto, width: 2, height: 100, displayValue: true, ...options, valid: function(valid) { if (!valid) { console.warn(无效的条形码值: ${value}); // 显示默认条形码或错误信息 JsBarcode(#${elementId}, ERROR, { lineColor: #ff0000, displayValue: true, text: 无效编码: ${value} }); } } }); } catch (error) { console.error(条形码生成失败:, error); // 显示错误占位符 document.getElementById(elementId).innerHTML text x50% y50% text-anchormiddle条形码生成失败/text; } } 立即开始使用JsBarcode现在你已经掌握了JsBarcode的核心用法和最佳实践是时候动手实践了从最简单的商品条形码开始逐步应用到你的项目中。下一步行动克隆项目仓库git clone https://gitcode.com/gh_mirrors/js/JsBarcode查看示例代码example/探索核心源码src/运行测试用例test/记住JsBarcode是一个完全开源的项目如果你在使用过程中发现任何问题或有改进建议欢迎查阅官方文档并参与贡献条形码生成从未如此简单 - 让JsBarcode为你的项目增添专业级条形码功能吧✨【免费下载链接】JsBarcodeBarcode generation library written in JavaScript that works in both the browser and on Node.js项目地址: https://gitcode.com/gh_mirrors/js/JsBarcode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章