Skip to content

castrix/jspdf-barcode

Repository files navigation

Demo

https://castrix.github.io/jspdf-barcode

Code

Why should I use jspdf-barcode?

The barcode that is generated by this library will not break when zoomed in/printed out since it's not generating picture/pixel

Installation

npm install jspdf jspdf-barcode --save

Usage

require jspdf >= 2.0.0

ES6

import jsPDF from "jspdf"; // please use default import
import jspdfBarcode from "jspdf-barcode";

const doc = new jsPDF()
jspdfBarcode(doc, "barcodeValue", {
    fontSize: 23,
    textColor: "#000000",
    x: 5.4,
    y: 25.5,
    textOptions: { align: "center" } // optional text options
  })

CJS

const { jsPDF } = require("jspdf")
const jspdfBarcode = require("jspdf-barcode").default // use .default

const doc = new jsPDF()
jspdfBarcode(doc, "barcodeValue", {
    fontSize: 23,
    textColor: "#000000",
    x: 5.4,
    y: 25.5,
    textOptions: { align: "center" } // optional text options
  })

Support

By default, it will use AUTO variant (will choose between Code 128B or Code 128C) if options.variant is not provided.

  • Code 128A: can accept uppercase alphanumeric (ABCD123)

    • Uppercase letters (A-Z)
    • Numbers (0-9)
    • Control characters (ASCII 0-31, like NUL, TAB, CR)
    • Some punctuation (e.g., space, $, %, +, -, ., /, :)
  • Code 128B: most versatile, can accept mixed case alphanumeric (abcABC123)

    • Uppercase letters (A-Z)
    • Lowercase letters (a-z)
    • Numbers (0-9)
    • More punctuation (e.g., space, !, ", #, $, %, &, etc.)
  • Code 128C: Optimized (shortest barcode) for numeric-only data (e.g., serial numbers)

Arguments

arguments type accepted value
doc string jspdf instance
barcodeValue string alphanumeric
options object fontSize number,
textColor string,
x: number // x coordinate of pdf,
y: number // y coordinate of pdf,
textOptions?: jspdf.textOptions
variant?: "AUTO" | "A" | "B" | "C"