JavaScript barcode generator library that creates various types of 1D barcodes with extensive customization options for both browsers and Node.js environments.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
CODE128 is a high-density linear barcode format that can encode the full ASCII character set. JsBarcode provides comprehensive CODE128 support with automatic mode switching for optimal encoding density and manual mode selection for specific requirements.
The default CODE128 implementation automatically selects the optimal encoding mode (A, B, or C) based on the input data to minimize barcode length.
/**
* Generate CODE128 barcode with automatic mode selection
* @param content - Data to encode (full ASCII support)
* @returns Optimal CODE128 encoding
*/
JsBarcode(element, content, { format: "CODE128" });
// Also accepts: format: "CODE128AUTO"Usage Examples:
// Mixed alphanumeric - uses optimal mode switching
JsBarcode("#barcode", "Hello123World", { format: "CODE128" });
// Numeric data - automatically uses CODE128C for efficiency
JsBarcode("#barcode", "1234567890", { format: "CODE128" });
// Control characters - automatically handles with appropriate modes
JsBarcode("#barcode", "Data\x01\x02Test", { format: "CODE128" });CODE128-A encodes uppercase letters, digits, punctuation, control characters, and special characters. Suitable for data containing control characters or when uppercase-only encoding is required.
/**
* Generate CODE128-A barcode (uppercase, digits, control chars)
* @param content - Data to encode (ASCII 0-95 + control chars)
*/
JsBarcode(element, content, { format: "CODE128A" });Character Set: ASCII 0-95 (control characters, digits, uppercase letters, punctuation)
Usage Examples:
// Uppercase letters and digits
JsBarcode("#barcode", "PRODUCT123", { format: "CODE128A" });
// With control characters
JsBarcode("#barcode", "DATA\x01\x02", { format: "CODE128A" });
// Punctuation and symbols
JsBarcode("#barcode", "ITEM-#123!", { format: "CODE128A" });CODE128-B encodes uppercase and lowercase letters, digits, and punctuation. Most commonly used mode for general alphanumeric data.
/**
* Generate CODE128-B barcode (mixed case alphanumeric)
* @param content - Data to encode (ASCII 32-127)
*/
JsBarcode(element, content, { format: "CODE128B" });Character Set: ASCII 32-127 (printable characters including lowercase)
Usage Examples:
// Mixed case text
JsBarcode("#barcode", "Hello World!", { format: "CODE128B" });
// Alphanumeric with symbols
JsBarcode("#barcode", "Product-123@Company", { format: "CODE128B" });
// URLs or paths
JsBarcode("#barcode", "https://example.com/path", { format: "CODE128B" });CODE128-C encodes pairs of digits, making it highly efficient for purely numeric data. Each pair of digits is encoded as a single symbol.
/**
* Generate CODE128-C barcode (numeric pairs)
* @param content - Numeric data to encode (even number of digits)
*/
JsBarcode(element, content, { format: "CODE128C" });Character Set: Numeric digits 0-9 (encoded in pairs)
Requirements: Input must contain even number of digits
Usage Examples:
// Even number of digits
JsBarcode("#barcode", "1234567890", { format: "CODE128C" });
// Product codes
JsBarcode("#barcode", "1234567890123456", { format: "CODE128C" });
// Serial numbers
JsBarcode("#barcode", "202501123456", { format: "CODE128C" });CODE128 supports special function codes for advanced applications:
// FNC1 for GS1 applications (Application Identifier)
const gs1Data = String.fromCharCode(207) + "01123456789012345";
JsBarcode("#barcode", gs1Data, { format: "CODE128" });
// FNC2 for message append
const appendData = "DATA" + String.fromCharCode(202) + "MORE";
JsBarcode("#barcode", appendData, { format: "CODE128" });
// FNC3 for initialization
const initData = String.fromCharCode(201) + "INIT_DATA";
JsBarcode("#barcode", initData, { format: "CODE128" });The automatic mode (CODE128AUTO) intelligently switches between modes within a single barcode:
// Starts with letters (Mode B), switches to numbers (Mode C)
JsBarcode("#barcode", "ABC1234567890DEF", { format: "CODE128" });
// Complex data with optimal mode switching
JsBarcode("#barcode", "PART123\x01DATA456789", { format: "CODE128" });// Valid ASCII characters for CODE128
const validData = "Valid ASCII text 123!@#";
JsBarcode("#barcode", validData, {
format: "CODE128",
valid: function(isValid) {
console.log("CODE128 validation:", isValid); // true
}
});
// Invalid characters (outside ASCII range)
const invalidData = "Text with unicode: π ∑ ∆";
JsBarcode("#barcode", invalidData, {
format: "CODE128",
valid: function(isValid) {
if (!isValid) {
console.log("Invalid characters for CODE128");
}
}
});/**
* Validates data for CODE128-A encoding
* @param data - String to validate
* @returns boolean - True if data contains only ASCII 0-95 + function codes
*/
// Internal validation regex: /^[\x00-\x5F\xC8-\xCF]+$//**
* Validates data for CODE128-B encoding
* @param data - String to validate
* @returns boolean - True if data contains only ASCII 32-127 + function codes
*/
// Internal validation regex: /^[\x20-\x7F\xC8-\xCF]+$//**
* Validates data for CODE128-C encoding
* @param data - String to validate
* @returns boolean - True if data contains even number of digits + FNC1
*/
// Internal validation regex: /^(\xCF*[0-9]{2}\xCF*)+$/Example Performance Comparison:
// Less efficient - forces CODE128B for numeric data
JsBarcode("#barcode1", "1234567890", { format: "CODE128B" });
// More efficient - uses CODE128C automatically
JsBarcode("#barcode2", "1234567890", { format: "CODE128" });
// Most efficient - explicitly uses CODE128C
JsBarcode("#barcode3", "1234567890", { format: "CODE128C" });