A React Native barcode generator using react-native-svg
npm install react-native-barcode-rnsvgA React Native barcode generator component using react-native-svg.
- 🎯 SVG-based rendering - Uses react-native-svg for better performance and compatibility
- 📊 Multiple barcode formats - Supports CODE128, EAN, UPC, CODE39, ITF, MSI, and more
- 🎨 Highly customizable - Colors, dimensions, text positioning, margins
- 📱 React Native optimized - Works on both iOS and Android
- 💪 TypeScript support - Fully typed for better development experience
``bash`
npm install react-native-barcode-rnsvgor
yarn add react-native-barcode-rnsvg
Make sure you have these peer dependencies installed:
`bash`
npm install react-native-svgFor iOS, you'll also need to run:
cd ios && pod install
`tsx
import React from 'react';
import { View } from 'react-native';
import { Barcode } from 'react-native-barcode-rnsvg';
export default function App() {
return (
);
}
`
`tsx`
format="EAN13"
width={3}
height={100}
displayValue={true}
fontSize={18}
lineColor="#000000"
background="#FFFFFF"
margin={20}
onError={(error) => console.log('Barcode error:', error)}
/>
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| value | string | Required | The value to encode in the barcode |format
| | BarcodeFormat | 'CODE128' | Barcode format to use |width
| | number | 2 | Width of individual bars |height
| | number | 100 | Height of the barcode |displayValue
| | boolean | true | Whether to display the value below/above the barcode |text
| | string | value | Custom text to display (if different from value) |fontSize
| | number | 20 | Font size for the displayed text |textAlign
| | 'left' \\| 'center' \\| 'right' | 'center' | Text alignment |textPosition
| | 'top' \\| 'bottom' | 'bottom' | Position of the text relative to barcode |textMargin
| | number | 2 | Margin between barcode and text |background
| | string | '#FFFFFF' | Background color |lineColor
| | string | '#000000' | Color of the barcode bars |margin
| | number | 10 | Margin around the entire barcode |marginTop
| | number | margin | Top margin (overrides margin) |marginBottom
| | number | margin | Bottom margin (overrides margin) |marginLeft
| | number | margin | Left margin (overrides margin) |marginRight
| | number | margin | Right margin (overrides margin) |flat
| | boolean | false | Flatten the barcode (remove start/end characters) |onError
| | (error: Error) => void | undefined | Error callback function |
- CODE128 - CODE128 (default)EAN13
- - EAN-13EAN8
- - EAN-8EAN5
- - EAN-5 (supplemental)EAN2
- - EAN-2 (supplemental)UPC
- - UPC-ACODE39
- - CODE39ITF14
- - ITF-14ITF
- - Interleaved 2 of 5MSI
- - MSI PlesseyMSI10
- - MSI Plessey with mod 10 check digitMSI11
- - MSI Plessey with mod 11 check digitMSI1010
- - MSI Plessey with mod 1010 check digitsMSI1110
- - MSI Plessey with mod 1110 check digitspharmacode
- - Pharmaceutical Binary Codecodabar
- - Codabar
This library provides a drop-in replacement for react-native-barcode-builder:
`tsx
// Before (react-native-barcode-builder)
import { BarCodeBuilder } from 'react-native-barcode-builder';
format="CODE128"
width={2}
height={100}
lineColor="#000000"
background="#FFFFFF"
/>
// After (react-native-barcode-rnsvg)
import { Barcode } from 'react-native-barcode-rnsvg';
format="CODE128"
width={2}
height={100}
lineColor="#000000"
background="#FFFFFF"
/>
`
- Modern and maintained - react-native-svg is actively maintained@react-native-community/art`
- Better performance - SVG rendering is more efficient
- Cross-platform consistency - Same rendering on iOS and Android
- No deprecated dependencies - Doesn't rely on
Contributions are welcome! Please feel free to submit a Pull Request.
MIT