条形码生成器 - 在线创建EAN-13, UPC-A, Code 128条形码
生成EAN-13、UPC-A、Code 128、Code 39、ITF-14等格式的一维条形码。自定义颜色、尺寸,下载SVG或PNG格式 — 100%客户端处理,无数据发送至服务器。
常见问题
什么是条形码?
条形码是一种一维(1D)机器可读代码,通过不同宽度的平行线条(条)和空白来直观地表示数据。条形码于1952年发明,1974年首次UPC扫描后彻底改变了零售业。存在多种符号体系(编码标准),如EAN-13、UPC-A、Code 128、Code 39、ITF-14、Codabar和Pharmacode,每种都针对零售、物流、医疗和制造等特定行业和用途进行了优化。
如何使用此条形码生成器工具?
1. 选择条形码格式(EAN-13、UPC-A、Code 128、Code 39、ITF-14、Codabar、Pharmacode)。2. 输入要编码的值。3. 条形码会自动实时生成。4. 可选择自定义条宽、高度、边距和颜色等显示选项。5. 以SVG或PNG格式下载。
我的数据安全吗?会发送到服务器吗?
您的数据100%安全,永远不会离开您的浏览器。所有条形码生成都使用JavaScript在客户端完成。输入的数据不会传输到任何服务器,因此可以安全地用于编码产品代码和内部标识符等敏感信息。
我应该使用哪种条形码格式?
合适的格式取决于您的使用场景。EAN-13是全球零售商品的国际标准。UPC-A用于美国和加拿大的零售商品。Code 128是适用于各行业的通用高密度条形码。Code 39广泛用于政府、军事和汽车行业。ITF-14用于运输箱和外包装。Codabar用于图书馆、血库和快递服务。Pharmacode专为制药行业的包装管理而设计。
什么是校验位?
校验位是条形码的最后一位数字,用于检测扫描错误。它通过基于条形码其他数字的加权和模10(mod 10)算法计算得出。此工具会自动计算EAN-13、UPC-A和ITF-14格式的校验位,因此您无需手动输入。
SVG和PNG有什么区别?
SVG是矢量格式,无论放大或缩小到任何尺寸都能保持清晰,非常适合打印。PNG是光栅(位图)格式,适合屏幕显示。此工具在PNG下载时应用3倍放大以确保清晰的输出。建议打印材料使用SVG,网页或屏幕显示使用PNG。
生成的条形码可以被扫描吗?
是的,此工具生成的条形码符合ISO/GS1标准,可以被任何标准条形码扫描器扫描。为获得最佳效果,请确保足够的边距(静区),保持条与背景之间足够的对比度,并以适当的尺寸打印。还建议在打印前进行测试扫描。
代码示例
// Generate barcodes in the browser using JsBarcode
import JsBarcode from 'jsbarcode';
// Basic Code 128 barcode
JsBarcode('#barcode', 'Hello World', {
format: 'CODE128',
width: 2,
height: 100,
displayValue: true,
fontSize: 18,
font: 'monospace',
lineColor: '#000000',
background: '#ffffff',
margin: 10,
});
// EAN-13 barcode with auto check digit
JsBarcode('#ean13', '590123412345', {
format: 'EAN13',
width: 2,
height: 80,
fontSize: 16,
});
// Calculate EAN-13 check digit
function calculateEAN13CheckDigit(digits) {
const d = digits.slice(0, 12).split('').map(Number);
const sum = d.reduce((acc, val, i) =>
acc + val * (i % 2 === 0 ? 1 : 3), 0);
return (10 - (sum % 10)) % 10;
}
console.log(calculateEAN13CheckDigit('590123412345')); // 7
// Download barcode as SVG
function downloadSVG(svgElement, filename) {
const svgString = new XMLSerializer()
.serializeToString(svgElement);
const blob = new Blob([svgString],
{ type: 'image/svg+xml;charset=utf-8' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = `${filename}.svg`;
link.click();
URL.revokeObjectURL(url);
}