UNPKG

react-native-brother-print

Version:

React Native module for printing with Brother printers via WiFi and Bluetooth

163 lines (122 loc) 4.51 kB
# react-native-brother-print A React Native module for printing labels on Brother printers via WiFi and Bluetooth. Supports QL series and other Brother label printers. ## Installation ```bash npm install react-native-brother-print ``` or using yarn: ```bash yarn add react-native-brother-print ``` ### Brother SDK Setup (Android Only) This library requires the Brother Print SDK, which must be provided by your application due to licensing requirements. 1. Visit [Brother's Developer Program](https://developerprogram.brother-usa.com/sdk-download) 2. Register/Login and download the Brother Print SDK for Android 3. Extract the .aar file from the SDK 4. Create a `libs` directory in your app's android directory: ```bash mkdir -p android/app/libs ``` 5. Copy the Brother SDK .aar file to this directory 6. Add the following to your app's `android/app/build.gradle`: ```gradle android { // ... your existing android config } repositories { // ... your existing repositories flatDir { dirs 'libs' } } dependencies { // ... your existing dependencies implementation files('libs/BrotherPrintLibrary.aar') // Use the actual filename of your .aar file } ``` 7. (Optional) If you placed the Brother SDK in a different location, you can configure the path in your app's root `android/build.gradle`: ```gradle buildscript { ext { // ... your other ext properties brotherSdkPath = "${rootProject.projectDir}/some/path/to/libs" // Adjust this if you placed the SDK somewhere else } // ... rest of your buildscript } ``` ### iOS Setup Run pod install: ```bash cd ios && pod install ``` ### Required Permissions #### iOS Add the following permissions to your `Info.plist`: ```xml <!-- Bluetooth permissions --> <key>NSBluetoothPeripheralUsageDescription</key> <string>Find paired Brother printers</string> <key>NSBluetoothAlwaysUsageDescription</key> <string>Find paired Brother printers</string> <!-- WiFi permissions --> <key>NSLocalNetworkUsageDescription</key> <string>Find Brother printers installed in the local network</string> <key>NSBonjourServices</key> <array> <string>_pdl-datastream._tcp</string> <string>_printer._tcp</string> <string>_ipp._tcp</string> </array> ``` #### Android Add the following permissions to your `AndroidManifest.xml`: ```xml <!-- Bluetooth permissions --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <!-- WiFi permissions --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ``` ## Usage ### Print via WiFi ```javascript import { printImageViaWifi } from "react-native-brother-print"; try { const ipAddress = '192.168.1.100'; // Your printer's IP address const modelName = 'QL-820NWB'; // Your printer's model name const imageUri = 'file:///path/to/your/image.png'; // Local file URI await printImageViaWifi(imageUri, ipAddress, modelName); console.log('Print successful'); } catch (error) { console.error('Print failed:', error); } ``` ### Print via Bluetooth ```javascript import { printImageViaBluetooth } from "react-native-brother-print"; try { const modelName = 'QL-820NWB'; // Your printer's model name const imageUri = 'file:///path/to/your/image.png'; // Local file URI await printImageViaBluetooth(imageUri, modelName); console.log('Print successful'); } catch (error) { console.error('Print failed:', error); } ``` ## Supported Printer Models This module supports the following Brother printer models: - **QL Series**: QL-820NWB, QL-820NWBc, QL-1110NWB, QL-1110NWBc - **PJ Series**: PJ-763MFi, PJ-862, PJ-863, PJ-883 - **MW Series**: MW-145MFi, MW-260MFi - **RJ Series**: RJ-2035B, RJ-2050, RJ-2150, RJ-3035B, RJ-3050Ai, RJ-3150Ai, RJ-3230B, RJ-3250WB, RJ-4030Ai, RJ-4230B, RJ-4250WB - **TD Series**: TD-2125NWB, TD-2135NWB, TD-4550DNWB - **PT Series**: PT-P910BT ## Notes - This module is a wrapper around the official Brother Print SDK - For more information about the Brother SDK, visit [Brother's Developer Program](https://developerprogram.brother-usa.com/sdk-download) - Based on [react-native-brother-printers](https://github.com/Avery246813579/react-native-brother-printers) ## License MIT