Git Product home page Git Product logo

thermal-printer-cordova-plugin's Introduction

Cordova Plugin for Thermal Printer's

npm version npm downloads


This plugin is a wrapper for the Android library for ESC/POS Thermal Printer.

Install

Cordova

$ cordova plugin add thermal-printer-cordova-plugin

Ionic

$ ionic cordova plugin add thermal-printer-cordova-plugin

Capacitor

$ npm install thermal-printer-cordova-plugin
$ npx cap sync

Don't forget to add BLUETOOTH and INTERNET (for TCP) permissions and for USB printers the android.hardware.usb.host feature to the AndroidManifest.xml.

<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:maxSdkVersion="30" android:name="android.permission.BLUETOOTH" />
<uses-permission android:maxSdkVersion="30" android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

Run this for getting Bluetooth access permission if needed

ThermalPrinter.requestBTPermissions({type: 'bluetooth'}, function(result){ console.log(result) }, function(error){ console.log(error) });

Examples

Notice for TypeScript-Developers

You can easily import and use the ThermalPrinter plugin in your TypeScript-Projects.

import { ThermalPrinterPlugin } from 'thermal-printer-cordova-plugin/src';

declare let ThermalPrinter: ThermalPrinterPlugin;

And then use the following examples in your code.

Print via Bluetooth

Printing via Bluetooth is as easy as possible.

ThermalPrinter.printFormattedText({
    type: 'bluetooth',
    id: 'first', // You can also use the identifier directly i. e. 00:11:22:33:44:55 (address) or name
    text: '[C]<u><font size='big'>Hello World</font></u>' // new lines with "\n"
}, function() {
    console.log('Successfully printed!');
}, function(error) {
    console.error('Printing error', error);
});

Notice: If not working please ensure that you have the printer connected. (Settings -> Bluetooth -> Pairing) If you have other issues maybe you have not granted the android.permission.BLUETOOTH permission.

Print via TCP

Printing via TCP is as easy as possible.

ThermalPrinter.printFormattedText({
    type: 'tcp',
    address: '192.168.1.123',
    port: 9100,
    id: 'tcp-printer-001', // Use an unique identifier for each printer i. e. address:port or name
    text: '[C]<u><font size='big'>Hello World</font></u>' // new lines with "\n"
}, function() {
    console.log('Successfully printed!');
}, function(error) {
    console.error('Printing error', error);
});

Notice: If not working please ensure that your device can ping the printer. And the printer must be a POSPrinter! Also ensure that you're using the correct port. 9100 is default for the thermal printers.

Print via USB (incl. listPrinters and requestPermissions)

  1. First we get our printer because we don't know the printer's ID.
  2. Then we request permissions for printing. This is needed because Android will not allow us to access all devices.
  3. And finally we can print with our device.
ThermalPrinter.listPrinters({type: 'usb'}, function(printers) {
    if (printers.length > 0) {
        var printer = printers[0];
        ThermalPrinter.requestPermissions(printer, function() {
            // Permission granted - We can print!
            ThermalPrinter.printFormattedText({
                type: 'usb',
                id: printer.id,
                text: '[C]<u><font size='big'>Hello World</font></u>' // new lines with "\n"
            }, function() {
                console.log('Successfully printed!');
            }, function(error) {
                console.error('Printing error', error);
            });
        }, function(error) {
            console.error('Permission denied - We can\'t print!');
        });
    } else {
        console.error('No printers found!');
    }
}, function(error) {
    console.error('Ups, we cant list the printers!', error);
});

listPrinters(data, successCallback, errorCallback)

List available printers

Param Type Description
data Object Data object
data.type "bluetooth" | "usb" Type of list: bluetooth or usb
successCallback function Result on success
errorCallback function Result on failure

printFormattedText(data, successCallback, errorCallback)

Print a formatted text and feed paper

See: https://github.com/DantSu/ESCPOS-ThermalPrinter-Android#formatted-text--syntax-guide

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" | "tcp" | "usb" List all bluetooth or usb printers
[data.id] string | number ID of printer to find (Bluetooth: address, TCP: Use address + port instead, USB: deviceId)
[data.address] string If type is "tcp" then the IP Address of the printer
[data.port] number If type is "tcp" then the Port of the printer
[data.mmFeedPaper] numberoptional Millimeter distance feed paper at the end
[data.dotsFeedPaper] numberoptional Distance feed paper at the end
[data.printerDpi] numberoptional Printer DPI
[data.printerWidthMM] numberoptional Paper Width in mm
[data.printerNbrCharactersPerLine] numberoptional Number of characters per line
data.text string Formatted text to be printed
successCallback function Result on success
errorCallback function Result on failure

printFormattedTextAndCut(data, successCallback, errorCallback)

Print a formatted text, feed paper and cut the paper

See: https://github.com/DantSu/ESCPOS-ThermalPrinter-Android#formatted-text--syntax-guide

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" | "tcp" | "usb" List all bluetooth or usb printers
[data.id] string | number ID of printer to find (Bluetooth: address, TCP: Use address + port instead, USB: deviceId)
[data.address] string If type is "tcp" then the IP Address of the printer
[data.port] number If type is "tcp" then the Port of the printer
[data.mmFeedPaper] numberoptional Millimeter distance feed paper at the end
[data.dotsFeedPaper] numberoptional Distance feed paper at the end
[data.printerDpi] numberoptional Printer DPI
[data.printerWidthMM] numberoptional Paper Width in mm
[data.printerNbrCharactersPerLine] numberoptional Number of characters per line
data.text string Formatted text to be printed
successCallback function Result on success
errorCallback function Result on failure

getEncoding(data, successCallback, errorCallback)

Get the printer encoding when available

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" | "tcp" | "usb" List all bluetooth or usb printers
[data.id] string | number ID of printer to find (Bluetooth: address, TCP: Use address + port instead, USB: deviceId)
[data.address] string If type is "tcp" then the IP Address of the printer
[data.port] number If type is "tcp" then the Port of the printer
successCallback function Result on success
errorCallback function Result on failure

disconnectPrinter(data, successCallback, errorCallback)

Close the connection with the printer

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" | "tcp" | "usb" List all bluetooth or usb printers
[data.id] string | number ID of printer to find (Bluetooth: address, TCP: Use address + port instead, USB: deviceId)
[data.address] string If type is "tcp" then the IP Address of the printer
[data.port] number If type is "tcp" then the Port of the printer
successCallback function Result on success
errorCallback function Result on failure

requestPermissions(data, successCallback, errorCallback)

Request permissions for USB printers

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" | "tcp" | "usb" List all bluetooth or usb printers
[data.id] string | number ID of printer to find (Bluetooth: address, TCP: Use address + port instead, USB: deviceId)
[data.address] string If type is "tcp" then the IP Address of the printer
[data.port] number If type is "tcp" then the Port of the printer
successCallback function Result on success
errorCallback function Result on failure

requestBTPermissions(data, successCallback, errorCallback)

Request permissions for bluetooth

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" List all bluetooth or usb printers
successCallback function Result on success
errorCallback function Result on failure

bitmapToHexadecimalString(data, successCallback, errorCallback)

Convert Drawable instance to a hexadecimal string of the image data

Param Type Description
data Array.<Object> Data object
data.type "bluetooth" | "tcp" | "usb" List all bluetooth or usb printers
[data.id] string | number ID of printer to find (Bluetooth: address, TCP: Use address + port instead, USB: deviceId)
[data.address] string If type is "tcp" then the IP Address of the printer
[data.port] number If type is "tcp" then the Port of the printer
[data.mmFeedPaper] numberoptional Millimeter distance feed paper at the end
[data.dotsFeedPaper] numberoptional Distance feed paper at the end
[data.printerDpi] numberoptional Printer DPI
[data.printerWidthMM] numberoptional Paper Width in mm
data.base64 string Base64 encoded picture string to convert
successCallback function Result on success
errorCallback function Result on failure

thermal-printer-cordova-plugin's People

Contributors

danielehrhardt avatar dantsu avatar iagorocha3112 avatar lacort avatar lucasschonrock avatar patrickbussmann avatar saaiful avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.