Oh MyUtils

条形码生成器 - 在线创建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);
}

相关工具