JSPM

nxtqs-thermal-printer-cordova-plugin

1.0.14
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 25
  • Score
    100M100P100Q70416F
  • License Apache-2.0

Cordova wrapper for ESC/POS Thermal Printer library

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nxtqs-thermal-printer-cordova-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    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:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.INTERNET" />

    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.

    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.

    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.

    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] number Millimeter distance feed paper at the end
    [data.dotsFeedPaper] number Distance feed paper at the end
    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] number Millimeter distance feed paper at the end
    [data.dotsFeedPaper] number Distance feed paper at the end
    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

    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.base64 string Base64 encoded picture string to convert
    successCallback function Result on success
    errorCallback function Result on failure