flutter_thermal_printer 1.2.3
flutter_thermal_printer: ^1.2.3 copied to clipboard
Plugin for Flutter to print on thermal printers via ESC/POS commands.
flutter_thermal_printer #

Buy Me A Coffee #
If you find this project helpful and want to support its development, you can buy me a coffee:
Getting Started #
This plugin is used to print data on thermal printers with ease across multiple platforms.
🎉 New Feature: USB Printing Services #
✨ Exciting Update! We now support USB printing services across multiple platforms! Connect your thermal printers directly via USB for faster, more reliable printing without the need for wireless connections.
Supported Platforms for USB:
- 🤖 Android - Full USB support
- 🖥️ Windows - Complete USB integration
- 🍎 macOS - Native USB connectivity
Experience enhanced printing performance with direct USB connections!
Currently Supported #
Service | Android | iOS | macOS | Windows |
---|---|---|---|---|
Bluetooth | ✅ | ✅ | ✅ | ✅ |
USB | ✅ | ✅ | ✅ | |
BLE | ✅ | ✅ | ✅ | ✅ |
WiFi | ✅ | ✅ | ✅ | ✅ |
final _flutterThermalPrinterPlugin = FlutterThermalPrinter.instance;
// Enum ConnectionType
enum ConnectionType {
BLE,
USB,
NETWORK,
}
// Additional Functions
// Recommended Function for getting printers
getPrinters(
refreshDuration: Duration,
connectionTypes: List<ConnectionType>,
) {
// Supports WINDOWS, ANDROID , Macos for USB
// MAC, IOS, ANDROID, WINDOWS for BLUETOOTH.
}
// Refer to Example for Complete code
Bluetooth Services #
Feature | Android | iOS | macOS | Windows |
---|---|---|---|---|
Start scanning | ✅ | ✅ | ✅ | ✅ |
Stop scanning | ✅ | ✅ | ✅ | ✅ |
Connect printer | ✅ | ✅ | ✅ | ✅ |
Disconnect printer | ✅ | ✅ | ✅ | ✅ |
Print data | ✅ | ✅ | ✅ | ✅ |
Print widget | ✅ | ✅ | ✅ | ✅ |
USB Services #
Feature | Android | iOS | macOS | Windows |
---|---|---|---|---|
Start scanning | ✅ | ✅ | ✅ | |
Stop scanning | ✅ | ✅ | ✅ | |
Connect printer | ✅ | ✅ | ✅ | |
Print data | ✅ | ✅ | ✅ | |
Print widget | ✅ | ✅ | ✅ |
WiFi Services #
Feature | Android | iOS | macOS | Windows |
---|---|---|---|---|
Connect printer | ✅ | ✅ | ✅ | ✅ |
Disconnect printer | ✅ | ✅ | ✅ | ✅ |
Print data | ✅ | ✅ | ✅ | ✅ |
Print widget | ✅ | ✅ | ✅ | ✅ |
Printer Model Class #
String? address;
String? name;
ConnectionType? connectionType;
bool? isConnected;
String? vendorId;
String? productId;
Additional Features #
Screenshot to Printer #
Easily capture and print widgets as images using the printWidget
method.
Image Cropping for Long Prints #
Handles long data by cropping images and printing them in chunks to ensure seamless printing on devices with limited buffer capacity.
Connection Type Validation #
- Ensures
ConnectionType
compatibility and alerts when unsupported combinations are used.
BLE State Monitoring #
Provides real-time monitoring for Bluetooth states, ensuring proactive error handling and reconnections.
Notes and Recommendations #
-
Windows & MacOS Users: Make sure you have the XPrinter driver installed on Windows for printer compatibility.
Download the driver from XPrinter Driver. -
Cross-Platform Usage: Ensure Bluetooth permissions and configurations are set correctly for Android and iOS.
Contributing Guidelines #
We welcome contributions to enhance the plugin's functionality!
To contribute, please fork the repository, make changes, and submit a pull request.
For bug reports or feature requests, feel free to open an issue.
Contributors #
Feel free to contribute to this project and help make it better for everyone!