Coder Social home page Coder Social logo

januslo / react-native-bluetooth-escpos-printer Goto Github PK

View Code? Open in Web Editor NEW
354.0 11.0 411.0 92.92 MB

React-Native plugin for the bluetooth ESC/POS & TSC printers.

License: MIT License

Java 6.03% JavaScript 0.15% Objective-C 93.33% Ruby 0.17% C 0.32%

react-native-bluetooth-escpos-printer's Issues

Undefined is not an object BluetoothTscPrinter.Direction

hello, i added your package through yarn add, does adding that way causing the library to break or something?

i don't really use BluetoothTscPrinter on my screen, even tho i excluded it. the error came from index.js in the library.

Screenshot_20190403-125830_Aulia

my MainApplication.java
`package com.rnfirebasedemo;

import android.app.Application;

import com.facebook.react.ReactApplication;
import cn.jystudio.bluetooth.RNBluetoothEscposPrinterPackage;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
import com.oblador.vectoricons.VectorIconsPackage;
import com.kishanjvaghela.cardview.RNCardViewPackage;
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@OverRide
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
        new RNBluetoothEscposPrinterPackage(),
        new RNDeviceInfo(),
        new VectorIconsPackage(),
        new RNCardViewPackage(),
        new RNGestureHandlerPackage()
  );
}

@Override
protected String getJSMainModuleName() {
  return "index";
}

};

@OverRide
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}

@OverRide
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
`

my MainActivity.java
`package com.rnfirebasedemo;
import android.content.Intent;

import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@OverRide
protected String getMainComponentName() {
return "rnFirebaseDemo";
}
}
`

Would be grateful if anyone could provide any solution for this. thanks!

Error while compiling

Hi, seems a nice package! Unfortunately i've got an error while compiling the package:

> Task :react-native-bluetooth-escpos-printer:compileDebugJavaWithJavac FAILED /Users/jeffreyvanhees/Projects/emeals_terminal/node_modules/react-native-bluetooth-escpos-printer/android/src/main/java/cn/jystudio/bluetooth/tsc/TscCommand.java:372: error: cannot find symbol public void add1DBarcode(int x, int y, BARCODETYPE type, int height, READABEL readable, ROTATION rotation, ^ symbol: class READABEL location: class TscCommand /Users/jeffreyvanhees/Projects/emeals_terminal/node_modules/react-native-bluetooth-escpos-printer/android/src/main/java/cn/jystudio/bluetooth/tsc/RNBluetoothTscPrinterModule.java:190: error: cannot find symbol private TscCommand.READABEL findReadable(int readable) { ^ symbol: class READABEL location: class TscCommand Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: /Users/jeffreyvanhees/Projects/emeals_terminal/node_modules/react-native-bluetooth-escpos-printer/android/src/main/java/cn/jystudio/bluetooth/tsc/TscCommand.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 2 errors

FAILURE: Build failed with an exception.

Anyone can help me ? evaluating 'BluetoothTscPrinter.DIRECTION

i have this problem

`undefined is not an object (evaluating 'BluetoothTscPrinter.DIRECTION = {
FORWARD: 0,
BACKWARD: 1
}')
Captura de Tela 2019-05-04 às 19 29 56

index.js:5:20 loadModuleImplementation require.js:292:12 SellScreen.js:7:2 loadModuleImplementation require.js:292:12 MainTabNavigator.js:7 loadModuleImplementation require.js:292:12 AppNavigator.js:3 loadModuleImplementation require.js:292:12 App.js:4 loadModuleImplementation require.js:292:12 AppEntry.js:2 loadModuleImplementation require.js:292:12 guardedLoadModule require.js:179:45 global code :0`

Image not printing from iOS

I am able to print an image from android phone, but when I try from iOS, the printer prints the first few lines of the image, but then stops feeding the paper, and just keeps printing on the same line. I wonder if anyone else has come across this? I actually reproduced this behaviour in some other software that isn't part of this repo, so I am wondering whether it is a printer bug.

Any help would be appreciated! I have attached pic of the result. Ignore the "hi there" that was from a previous test.

whatsapp image 2019-01-09 at 23 15 02

local image not working

Hello

import RNFetchBlob from "react-native-fetch-blob";
import {BluetoothManager,BluetoothEscposPrinter,BluetoothTscPrinter} from 'react-native-bluetooth-escpos-printer';

const options = { width: 15, height:100}
const path = 'file:///D://Nemelt//ReactNative//Print//Code//BarCodeShoshigLast//src//resources//images//Frame1.png';

frame1

RNFetchBlob.fs.readFile(path, 'base64')
.then((data) => {
console.log('--------------------->>>'+data)
BluetoothEscposPrinter.printPic(data, options)

})

can not printing image HELP ME
thank you

Thermal printer

I have a thermal printer Honeywell RP4, when I use your example for test. It can connect via bluetooth but when I press any button like Self Test, Print Label.. It can't happen, Is my printer not suitable for your lib? May my printer doesn't have right input mode.

How can I balance the columnWidths?

I have tried to print for printing column but the width of columns display wrong.
I want to balance the width of the columns. How can I resolve it?

If you see the example below, You will see the price is not balance.

This is an example that I got.
s__3907588

COMPATIBLE PRINTERS

the printer prints dot at the beginning of the line

I am trying to print on a bluetooth dpp 350 printer.
The printer is printing correctly. However, a point is leaving at the beginning of each line.

I already tried several encoding and also codepage and I could not remove that point at the beginning of the line.

            let config = {
                encoding: 'ISO8859_1',
                codepage: 1,
                widthtimes: 0,
                heigthtimes: 0,
                fonttype: 1
            }

            await  BluetoothEscposPrinter.printText("Testando impressão!\r\n", config);     
            await  BluetoothEscposPrinter.printText("I need help!\r\n", config);     
            await  BluetoothEscposPrinter.printText("I need help!\r\n", config);     
            await  BluetoothEscposPrinter.printText("I need help!\r\n", config);     
            await  BluetoothEscposPrinter.printText("I need help!\r\n", config);

Please, does anyone know how to remove this point from the beginning of the line?

Encoding UTF-8

I need print some text with encoding UTF-8.
Seem this library does not support UTF-8.
Is it right?

usb thermal printer

Hi,
Thanks for your work.
Does the package work with a usb thermal printer?
if not, would you be able to refer me to a proper package?
Thanks

error

Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

Could not find any version that matches com.facebook.react:react-native:0.55+.
Versions that do not match:
0.20.1
0.20.0
0.19.1
0.19.0
0.18.0
+ 13 more
Searched in the following locations:
file:/Users/i/Library/Android/sdk/extras/m2repository/com/facebook/react/react-native/maven-metadata.xml
file:/Users/i/Library/Android/sdk/extras/m2repository/com/facebook/react/react-native/
file:/Users/i/Library/Android/sdk/extras/google/m2repository/com/facebook/react/react-native/maven-metadata.xml
file:/Users/i/Library/Android/sdk/extras/google/m2repository/com/facebook/react/react-native/
file:/Users/i/Library/Android/sdk/extras/android/m2repository/com/facebook/react/react-native/maven-metadata.xml
file:/Users/i/Library/Android/sdk/extras/android/m2repository/com/facebook/react/react-native/
https://jitpack.io/com/facebook/react/react-native/maven-metadata.xml
https://jitpack.io/com/facebook/react/react-native/
https://maven.google.com/com/facebook/react/react-native/maven-metadata.xml
https://maven.google.com/com/facebook/react/react-native/
https://oss.sonatype.org/content/repositories/snapshots/com/facebook/react/react-native/maven-metadata.xml
https://oss.sonatype.org/content/repositories/snapshots/com/facebook/react/react-native/
https://dl.google.com/dl/android/maven2/com/facebook/react/react-native/maven-metadata.xml
https://dl.google.com/dl/android/maven2/com/facebook/react/react-native/
file:/Users/i/.m2/repository/com/facebook/react/react-native/maven-metadata.xml
file:/Users/i/.m2/repository/com/facebook/react/react-native/
https://jcenter.bintray.com/com/facebook/react/react-native/maven-metadata.xml
file:/Users/i/fuwuqi/works/eryiSY/node_modules/react-native/android/com/facebook/react/react-native/maven-metadata.xml
Required by:
project :app > project :react-native-bluetooth-escpos-printer

How to print table view, like orders details with Items, price and total price

I can see that we can use print column method, like below

await BluetoothEscposPrinter.printColumn(columnWidths, [ BluetoothEscposPrinter.ALIGN.LEFT, BluetoothEscposPrinter.ALIGN.CENTER, BluetoothEscposPrinter.ALIGN.CENTER, BluetoothEscposPrinter.ALIGN.RIGHT, ], ['Order Id', 'Item', 'Price', 'test'], {});

my doubt is what is this emoty object parameter in the end. what I can pass into it.

How can I print larger English word font size?

Hi
I would like to print larger English font size.
The example are able to print large chinese font size, but when come to Alphabet it was not able to do so.

This was my code:
image

And this is the result:
image

Persistent bluetooth connection

I have small question. How to implement persistent bluetooth connection in the background? Any idea? I used ver 0.0.2 and the examples/App.js in one of my bottom tabnavigator. I can connect to the device and print my receipt but whenever I change tab and come back to the printer view tab I need to rescan and reconnect device. Any plan to include this in the future? Thanks for this great package

Image not printing on iOS

Hi,

I actually have same issue with #21. I have printPic command followed by few lines of printColumn and printText.

It works on Android but on iOS, the printer starts to feed few lines of the paper then stops (no image printed) while there are still lines of text to be printed. When I remove printPic command, the columns and the texts print well.

Is there some way I could make the image to print on iOS?
Thanks for the great library.

Text split

Hi! How make text split in two columns, like

<View style={{flexDirection: 'row', justifyContent:'space-between', flex:1}}/>
  <Text>1</Text>
  <Text>2</Text>
</View>

I use this code:

const textConfig = {
      encoding: 'UTF-8',
      codepage: 0,
      widthtimes: 0,
      heigthtimes: 0,
      fonttype: 0
    }

BluetoothEscposPrinter.printerAlign(BluetoothEscposPrinter.ALIGN.LEFT)
BluetoothEscposPrinter.printText('1:', textConfig)
BluetoothEscposPrinter.printerAlign(BluetoothEscposPrinter.ALIGN.RIGHT)
BluetoothEscposPrinter.printText('2', textConfig)
BluetoothEscposPrinter.printText('\n', textConfig)

But get
1:2 aligned to right side of paper

align

How do I know Printer paper roll is finished?

Is there any way to know if there is an error in printing the bill when paper roll is finished. For now, if I try printing and printer is in error state, because printing paper got finished.
Promise never resolves for this case?

Please suggest me a way to solve this problem

PrintPic weird character 'B'

Can somebody help me with this?

I tried PrintPic and it is working correctly. However after the image it prints a weird 'B' character at the end of line (don't know why). How do i get rid of it?

I'm using the library v0.0.5 btw and this is the image and codes I used:

    _printImage = async (img) => {
        try{
            await BluetoothEscposPrinter.printPic(img,{width:250,left:50});
        }catch(e){
          alert(e.message || "ERROR")
        }      
    }
const BASE64_LOGO = "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";

//then:
//some codes...
		     this._printImage(BASE64_LOGO);

can anyone who've faced the issue help or can someone try this? Any suggestion/help is much appreciated!

TSC Alpha-3RB

Hi, thx for the lib.
I have printer Alpha-3RB , blue-tooth connection trigger EVENT_CONNECTION_LOST, after connect on android.

Also, i have printer milestone mht-l5801, he connect and print fine.

Location permission in module

Hi

When i use your module, app asks me allow location permission.
I do not know why this module need location permission? please can you give me detail.

I found this code in android module:

int permissionChecked = ContextCompat.checkSelfPermission(reactContext, android.Manifest.permission.ACCESS_COARSE_LOCATION);
if (permissionChecked == PackageManager.PERMISSION_DENIED) {
// // TODO: 2018/9/21
ActivityCompat.requestPermissions(reactContext.getCurrentActivity(),
new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION},
1);
}
Thanks so much

Image printing

Can you share demo with image printing using BluetoothEscposPrinter class? I have crash on printing this image:

data:image/gif;base64,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"

printLabel undefined is not a function

When I am running BluetoothTscPrinter.printLable function. warning comes up with "undefined is not a function". I think you have implemented BluetoothTscPrinter package yet.
all other commands are working as they are called with BluetoothEscposPrinter, for Example, this BluetoothEscposPrinter.printText("Hello world\n\r",{}); works completely fine.

Something wrong with image

My code:

var img = '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';

await BluetoothEscposPrinter.printPic(img,{width:210});

5705fb2d-b973-4543-8488-f1a7dbb18807

Cannot print

i have try printText("hello world") but printer can't print that text, you have solution?

Printer inmediatly disconnects after first connection

I get this error when trying to connect to the printer. It is working with other models but not with this 3nStar PPT200BT
It connects correctly, but then it disconnects.
Why could this happen? I tested this printer with apps from Play Store and it is working, but not with the example from this repository (which it works with others printers I am testing)

Small letters

Hi, can you please add an example to print with small letters...I can see in the selftest of the printer at the end but i see no options to set...I was thinking maybe setWidth(int width) but is not working...Now i can print 32 characters per line...i need to print 42..
Thanks in advance

framesToPop: 1, code: EUNSPECIFIED

when I am calling
BluetoothEscposPrinter.printerAlign(BluetoothEscposPrinter.ALIGN.CENTER)
.then(() => alert('success')).catch(err => alert(JSON.stringify(err)))

also, function to initialize printer is not found :(

Build error

FAILURE: Build failed with an exception.

  • What went wrong:
    Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

Could not find any version that matches com.facebook.react:react-native:0.55+.
Versions that do not match:
0.20.1
0.20.0
0.19.1
0.19.0
0.18.0
+ 13 more

"react": "16.6.1",
"react-native": "0.57.5",

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.