syncfusion-javascript-barcode
Implementing Syncfusion Barcode Generators
When to use this skill: You're building a web application that needs to generate, customize, and export barcodes (linear codes, QR codes, or Data Matrix codes). This includes point-of-sale systems, inventory management, ticketing systems, healthcare applications, or any solution requiring scannable codes.
Barcode Library Overview
The Syncfusion Barcode Generator library (@syncfusion/ej2-barcode-generator) provides three main barcode types:
- BarcodeGenerator: Create linear 1D barcodes (Code39, Code128, Codabar, Code11, Code32, Code93, Code128A/B/C)
- QRCodeGenerator: Create 2D QR codes with optional logos and error correction
- DataMatrixGenerator: Create 2D Data Matrix codes for industrial and retail applications
All three use the same core API: initialize with configuration, append to DOM, customize, and export.
Documentation & Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation and npm package setup
- Project configuration for System.js or bundlers
- Creating your first barcode with each generator type
- CSS imports and theming
- Basic DOM appending pattern
Barcode Types & Selection
📄 Read: references/barcode-types.md
- Linear barcode types: Code39, Code39 Extended, Code11, Codabar, Code32, Code93, Code128
- Character set limitations for each type
- When to use each barcode format
- Selection guide based on use case
QR Code Generation
📄 Read: references/qr-code-generation.md
- QR code basics (versions, modules, capacity)
- Creating QR codes with displayText
- Adding logos/icons to QR codes
- Error correction levels (Low, Medium, Quarter, High)
- Dynamic resizing and version management
Data Matrix Barcodes
📄 Read: references/data-matrix-codes.md
- Data Matrix overview and use cases
- Creating Data Matrix codes
- Encoding numeric vs. alphanumeric data
- Size selection and layout patterns
- Integration with inventory systems
Customization & Styling
📄 Read: references/customization-styling.md
- Barcode colors (foreColor, backgroundColor)
- Dimensions (width, height, responsive sizing)
- Display text customization (font, visibility, alignment)
- Render modes (SVG vs. Canvas)
- Advanced styling with CSS and theme integration
Export & Printing
📄 Read: references/export-printing.md
- Export to image formats (JPG, PNG)
- Export as Base64 string for storage
- Print functionality
- Download handling in browser
- Server-side integration patterns
Validation & Events
📄 Read: references/validation-events.md
- Input validation before barcode generation
- ValidateEvent handling
- Error prevention and edge cases
- Event-driven barcode updates
- Real-time validation patterns
Quick Start Example
import { BarcodeGenerator } from '@syncfusion/ej2-barcode-generator';
// Linear barcode (Code128)
const barcode = new BarcodeGenerator({
width: '200px',
height: '150px',
type: 'Code128',
value: 'SYNCFUSION',
mode: 'SVG',
displayText: { visibility: true }
});
barcode.appendTo('#barcode');
// For QR Code
import { QRCodeGenerator } from '@syncfusion/ej2-barcode-generator';
const qrCode = new QRCodeGenerator({
width: '200px',
height: '200px',
value: 'Your value here',
displayText: { visibility: false },
mode: 'SVG'
});
qrCode.appendTo('#qrcode');
// For Data Matrix
import { DataMatrixGenerator } from '@syncfusion/ej2-barcode-generator';
const dataMatrix = new DataMatrixGenerator({
width: '200px',
height: '200px',
value: 'Syncfusion',
mode: 'SVG'
});
dataMatrix.appendTo('#datamatrix');
Common Patterns
Pattern 1: Type Selection
- Use
Code128for general-purpose alphanumeric barcodes (most flexible) - Use
QRCodeGeneratorfor URLs, contact info, or when logo branding is needed - Use
DataMatrixGeneratorfor industrial labeling and small-space encoding - Use
Code39for legacy systems or when ASCII is sufficient
Pattern 2: Customization Pipeline
const barcode = new BarcodeGenerator({
type: 'Code128',
value: data,
width: '200px',
height: '150px',
mode: 'SVG',
foreColor: '#000000',
backgroundColor: '#ffffff',
displayText: { text: label }
});
barcode.appendTo('#element');
Pattern 3: Dynamic Export
// Export to image with filename
barcode.exportImage('mybarcode', 'PNG');
// Export as Base64 for server submission
const base64 = await barcode.exportAsBase64Image('JPG');
Pattern 4: Responsive Sizing
const barcode = new BarcodeGenerator({
width: '100%', // Responsive to container
height: '150px',
type: 'Code128',
value: productCode
});
Key Props
| Property | Type | Default | Purpose |
|---|---|---|---|
type |
string | 'Codabar' | Barcode type (Code39, Code128, etc.) |
value |
string | '' | Data to encode in barcode |
width |
string | '200px' | Barcode width (px or %) |
height |
string | '150px' | Barcode height |
mode |
string | 'SVG' | Render mode (SVG or Canvas) |
foreColor |
string | '#000000' | Barcode color |
backgroundColor |
string | '#ffffff' | Background color |
displayText |
object | {} |
Display text config (visibility, text, font) |
logo (QR only) |
object | null |
Logo config (imageSource, width, height) |
errorCorrectionLevel (QR only) |
number | 0 | Error correction: 0=Low, 1=Medium, 2=Quarter, 3=High |
Common Use Cases
- Point of Sale: Generate product barcodes on-the-fly with Code128
- Inventory: Create shipment labels with Data Matrix for tracking
- Marketing: Generate QR codes pointing to promotional URLs
- Healthcare: Encode patient data in Code39 (legacy system compatible)
- E-commerce: Generate order numbers as Code128 barcodes for packing
- Ticketing: Create QR codes for event tickets with logo branding
- Document Management: Embed Data Matrix in PDFs for sorting/filing
Next Steps
Start with Getting Started to set up the library, then select your barcode type using Barcode Types. For customization needs, see Customization & Styling. For export/print workflows, see Export & Printing.
More from syncfusion/javascript-ui-controls-skills
syncfusion-javascript-gantt-chart
Implement Syncfusion Gantt Chart using JavaScript/TypeScript (Essential JS 2). Use this when working with ej2-gantt component for project scheduling, task dependencies, and timeline management. Covers full Gantt implementation including data binding, task scheduling, columns, resources, timeline configuration, WBS, resource view, critical path, baseline tracking, filtering, sorting, editing, and export functionality (Excel/PDF).
10syncfusion-javascript-maps
Guide to implementing Syncfusion Maps in TypeScript and JavaScript. Use this skill whenever the user needs to create interactive maps, add markers, visualize geographical data, work with map layers, apply color mapping, add annotations, configure legends, or handle map interactions and events. Works with TypeScript (module-based) and JavaScript (CDN/ES5).
9syncfusion-javascript-accumulation-chart
Implements Syncfusion JavaScript accumulation charts (Pie, Doughnut, Funnel, Pyramid) for proportional and percentage-based visualizations. Use when displaying categorical or proportional data. Covers legend and label configuration, interactivity, accessibility, and customization. Works with TypeScript (modules) and JavaScript (CDN/ES5).
9syncfusion-javascript-rich-text-editor
Implements the Syncfusion Rich Text Editor and Markdown Editor using TypeScript (ej2-richtexteditor). Supports both HTML (WYSIWYG) and Markdown modes via editorMode on a single RichTextEditor class. Use this skill for toolbar setup, image/media/table handling, inline or iframe editing, AI assistant, smart editing, import/export, and all content editor scenarios.
9syncfusion-javascript-chart
Implements Syncfusion JavaScript chart controls (Line, Area, Bar, Column, Pie, Polar, Radar, Waterfall, Stock). Use when building interactive data visualizations, dashboards, or real-time charts. Covers series and axes configuration, styling, animations, exporting, and technical indicators. Works with TypeScript (webpack/modules) and JavaScript (CDN/ES5).
9syncfusion-javascript-dropdowns
Comprehensive guide for implementing Syncfusion TypeScript dropdown components including AutoComplete, ComboBox, Mention, Dropdownlist and Multiselect. Use this when building selection interfaces, data binding, filtering, cascading dropdowns, custom templates, and accessible dropdown experiences.
8