Bluetooth Printing In Flutter To Print Receipts Via Thermal Printer

Recently I faced the issue of Bluetooth printing in Flutter. But finally solved after 3 days and of course, I take a...

· 1 min read >

Recently I faced the issue of Bluetooth printing in Flutter. But finally solved after 3 days and of course, I take a break to get inspiration, and here is the story.

I used 2 printing libraries, esc_pos_utils and esc_pos_bluetooth to solve the printing problem. So I tried running a sample project from its repository and connected it to the printer successfully. But there was something wrong while integrating the package into my Android project.

At first, I thought the issue came from plugin dependency. After two days of trial and error, and finally on the next day, found the issue came from targetSdkVersion in Android Gradle.


In the journey to find a solution, I spent a lot of time researching to get the best result that fit my project. At least until published this story, there are no new compatible versions of these plugins yet.

Another story  Digital Ocean Host Multiple Domains In One Droplet For Beginners

Day 1

Research some Bluetooth plugin to connect and print. Found bluetooth_printblue_thermal_printeresc_pos_bluetooth, and esc_pos_utils.

The last two was my choice. Testing sample from its repository, the result is passed, it worked!

Then, Integrate into my project, and.. it failed! So I tried to copy the repo into a local project and got the log below

Because mywidget depends on esc_pos_bluetooth 0.2.8 
which depends on esc_pos_utils ^0.3.6, 
esc_pos_utils ^0.3.6 is required. 
So, because mywidget depends on esc_pos_utils ^1.0.0, 
version solving failed.

Day 2

I downgrade library version from version esc_pos_utils: 1.0.0 to esc_pos_utils: 0.3.6. While version esc_pos_bluetooth: 0.2.8 is no change.

I got an amazing thing, actually, no errors but also no printers found LOL! You know if everything seems fine but isn’t really working, it’s hard to debug because there’s no clue.

Another story  Connecting Android Emulator To Localhost Without Proxy Setting

And … of course, I’ve made sure the printer and Bluetooth are on and connected to my phone.

Day 3

Analyze sample project, wondering it run successfully in sample project only? So I manage to open up two Gradle files android/app/build.gradle from the sample and the other from my project. 

And… after inspecting carefully, found the targetSdkVersion 28 (from the sample) and version 29 from my project, maybe it was the default value from flutter-create command result.


Finally, I downgrade the target to 28, and the problem solved! So I continued to design receipts and this is the result.


Receipt printed successfully via Bluetooth thermal printer. Here is 58mm thermal printer and the receipt

Here is the result after 3 days LOL!

Maybe next time I will tell you the process of design this receipt 🙂

Another story  Simple Steps Installing Lets Encrypt SSL Certificate To Secure Nginx Server On Ubuntu Linux

Thank you all

And the important thing is.. thanks all for those plugins creator for Bluetooth printing in Flutter. All of you so wonderful.

Leave a Reply

Your email address will not be published. Required fields are marked *

Right Menu Icon