{"_id":"@ahmedb7r/react-native-esc-pos","_rev":"3-c3f6d39d8ca375e3c6195d4457324eed","name":"@ahmedb7r/react-native-esc-pos","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@ahmedb7r/react-native-esc-pos","description":"A React Native ESC/POS module to help you connect to your ESC/POS printer easily.","version":"0.1.0","license":"MIT","author":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gamil.com"},"keywords":["bluetooth","esc/pos","network","printer","react-native","thermal printer"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"devDependencies":{"react":"^16.5.0","react-native":"^0.59.4"},"peerDependencies":{"react":"^16.5.0","react-native":">=0.57.0-rc.0 <1.0.x"},"gitHead":"cc2998f6163e242d33c86413f66a31d7a3acdcbe","_id":"@ahmedb7r/react-native-esc-pos@0.1.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-dl9NzBjvAvgq112EobkqZhaEGIYZQTo7QKF5Ww2djxCcAiHXKJ3+5oUfrxxyHVMlicwy3T8PfmKRDluOwb51rg==","shasum":"44b8d108428cad41913d706908826a25e2eef43a","tarball":"https://registry.npmjs.org/@ahmedb7r/react-native-esc-pos/-/react-native-esc-pos-0.1.0.tgz","fileCount":28,"unpackedSize":5105763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJht1EiCRA9TVsSAnZWagAATRkP/irarkC9zcf1BbuOF3Ew\nOX7sSYyyXrkKPWDcKHFHUkMGdR9hj43TJYoyZf3Fq1iWRqZjybHmlGSYeAVM\n4ZEGJZGwiEWWr/9lJ/rcHpYJeUo87cAcNSOiCauMlfHU7IfwnOlZmTvEMmeK\n0NxHj05gCfZzuHwe92O0TpiR44qoJLgqK9GUhgtYtlaybdAAajOp2am6QQH9\nrKdLVw+cb3rUWJMgM2ZsCMhXO6wuXFAFGY3D41uIJ5Mh5FtfHTytFQOibfQt\n0u58IMj3X2ckzl5Tl+ZqichlNTw9kAsPkay6VFKCdm7n685k69wtiCj8w1lF\nyima9Jew2Vlc5L0l8VtBwbn2JRoOpzG6ZiX1XzQPMb7/fd6cwJTbSs/wEjX3\n27BvL76/tX7MhwaapIzszDc1qQ31eYiznvjs/nNOinRcU5zZ33S3WcyumAAt\nXbgQPEGnIgcqQJKjKvC+bJXcU4PggWQRDm53VBLY+UmsYDLOFybwTde8ct02\nE/g4vw5WxSMTDhXhKdPx2ofMHyYoj5Oj18FTyouUB/Qe2n6TpyT4JQvysCjQ\nZjJq9T/1JQYwLHhI/9orTwMqZbvj8HDbFiuTzYrtEV9xIw8L+eP9vd0e0MYF\n1nW8dWqqUbL8KnJDK48ybvd2EI67iBVYn+pVv+noZlX5PuKj+laHXCI4f9kn\ncad+\r\n=xlFd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVy8OLxMCqSN61lxc/kkpf9CtccBfm0bqbs24KXN4SJAIhAOkpQp7ExaBN5rSkrba7jAL7bGywoz88ZFIBRVhU2Dhw"}]},"_npmUser":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-esc-pos_0.1.0_1639403809984_0.5290768466332683"},"_hasShrinkwrap":false},"0.1.1":{"name":"@ahmedb7r/react-native-esc-pos","description":"A React Native ESC/POS module to help you connect to your ESC/POS printer easily.","version":"0.1.1","repository":{"type":"git","url":"git+https://github.com/ahmedB7r/react-native-esc-pos.git","baseUrl":"https://github.com/ahmedB7r/react-native-esc-pos"},"license":"MIT","author":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gamil.com"},"keywords":["bluetooth","esc/pos","network","printer","react-native","thermal printer"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"devDependencies":{"react":"^16.5.0","react-native":"^0.59.4"},"peerDependencies":{"react":"^16.5.0","react-native":">=0.57.0-rc.0 <1.0.x"},"gitHead":"cc2998f6163e242d33c86413f66a31d7a3acdcbe","bugs":{"url":"https://github.com/ahmedB7r/react-native-esc-pos/issues"},"homepage":"https://github.com/ahmedB7r/react-native-esc-pos#readme","_id":"@ahmedb7r/react-native-esc-pos@0.1.1","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-k+ZjvGaZSPYSmJ+/s7AwgALw7rp2f5LJKUViIra34Xd/sPFJ2l+xH7wbH0MZPK7XBn+qTPDeAEfHAHGijuoZIQ==","shasum":"d4ca3b285c4cf6880fc98fc19bd2c7f9230f533b","tarball":"https://registry.npmjs.org/@ahmedb7r/react-native-esc-pos/-/react-native-esc-pos-0.1.1.tgz","fileCount":28,"unpackedSize":5105941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuE42CRA9TVsSAnZWagAAvGoP/2QKt8W9a93ZoKyNBjLV\nyyxXAqgeqztkSMGOVUGfKk2MxU5VE+qz4pT1ak4bMrfoNWZ42FT3k+gH92Vh\n+NQaqetnhW29k3j4HzH7VpaSQXSJLKC8sM6CeSRCCQtIf59fuw0vH0UWYWMV\nsr1EHjZs1NZyegQNY0bYKQyMgzLxUHMw2lkAVHuAJ/c6BkoXkppQ6ZYrEt6+\nwMR2NiI4oSUaSclnlLa7pgIsSKSvkqI82Hue0XFW3HRIqkhmhkpLKFac+hmd\nRXz5CXJ6kPMv24tJUMbtZG42eRYfiPUrpaC9R67y1hbCGzWRAhuBPmC4gXKI\nEaZ80MNaeoLoUpPPy/EyL9340TERmDSCsDCyc3Yhk2rqQgd/WI2U+gf7bhTQ\nBTJVuarAJvfx6OVZXzvv/bWuMnKj/sA9jo6THIPDT5fM6ujvlsixdutrfaQg\nFYSiYVrLqmT82rNHvTlKIBqk54ZoA4HBLcRjl5hVPDabYx8nccv8HYVudkfx\nPpCG4Q/46VOfQUIvFBOzxcQcOMtPJkmT+SKxf7H4eObLD87Lggck/VzKUcMx\nCiHUdPtjbzNhJQDkqNKDUwFfrT6YD7L3wX6CHUdElTCmrEYK6U0hboTSjjJK\nlsNYPf1czdnKsFa2obxk1URMSKnl9sVLqZqQBLRAJezTnUYhjdk2y5YswqsC\nR/9h\r\n=kcnt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3PaYuwKUvAGMlbH9q8zwR4Bcdqzwm6JqMZFmFEjcPKwIgX6ZTUUZ2G6pp8s4YGd4Fg0fbg9aQPBoKn4NGD/gomIA="}]},"_npmUser":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-esc-pos_0.1.1_1639468598299_0.7175316883833187"},"_hasShrinkwrap":false},"0.1.2":{"name":"@ahmedb7r/react-native-esc-pos","description":"A React Native ESC/POS module to help you connect to your ESC/POS printer easily.","version":"0.1.2","repository":{"type":"git","url":"git+https://github.com/ahmedB7r/react-native-esc-pos.git","baseUrl":"https://github.com/ahmedB7r/react-native-esc-pos"},"license":"MIT","author":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gamil.com"},"keywords":["bluetooth","esc/pos","network","printer","react-native","thermal printer"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"devDependencies":{"react":"^16.5.0","react-native":"^0.59.4"},"peerDependencies":{"react":"^16.5.0","react-native":">=0.57.0-rc.0 <1.0.x"},"gitHead":"cc2998f6163e242d33c86413f66a31d7a3acdcbe","bugs":{"url":"https://github.com/ahmedB7r/react-native-esc-pos/issues"},"homepage":"https://github.com/ahmedB7r/react-native-esc-pos#readme","_id":"@ahmedb7r/react-native-esc-pos@0.1.2","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-rOgFwQ2R6SgbK1HJRiXBFlD7jxERQoT1xq1q7UUv8td3VawjQvtQNVz/oWK5nZFRllcoNZGffsGf4G8TIs9eDw==","shasum":"a01281a3bbbe4e0365dde7a8d8717cca3f914330","tarball":"https://registry.npmjs.org/@ahmedb7r/react-native-esc-pos/-/react-native-esc-pos-0.1.2.tgz","fileCount":28,"unpackedSize":5105948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuFJECRA9TVsSAnZWagAAW1sP/0Gj4LwdjSztzjSMrek2\nDO0io31qY2BJQOYlqQLypqHBMQMTlvK/WqnwvsD3SpdZKOGjnYoto/w6rMlr\ngjzA3Wht60zJkBZRXc7ycXo/xE34z6pSFMg9gudxEBeknFarU9VVt75HIQbV\nV5mlOaumDsJ5gT/B1Ap3fPknh3PP5+Eflfq4ckPdu5T6KwPRVB7YTrZE6vqH\n5nXqton6GwlVxnG+AarSPXOrHjkty1juMFz7iaSfbUBndJxYQf1f/PL/eQFI\ne6c/R75di+DtNaC/w0oh5pDBUndy5+kCp5tRPFXs0dhwEJAvvQ53jHKQ2tpe\nVbU7Br1NVXv+IQLm/DB4BBLx4No5+hcKaXyO+HCHKw/bsK3TpfRuCPRwEwOF\n6WZLuNG9Nn7+FsUBkChJkwGdSZ8xcQW6liGzvcYMdnYWAbS4+yyFh0kyBRR7\n2d2eps6OKWEkvwtsh+h4PTsbEAo/Y/iFywbW+AmP+uARoNEsHY7jtKQ+ov0w\nLrbOjiRD9xIdWS1IWyJVvd0dyhjRgC4dlxS9YRt4B7FPMG07agNGfinRmWHK\niXGVp8xbP6E/uZg4lTChf2Bq4pNjPX3PglUqWqmXMQvBpgyTBdbLJI4Mm24t\n7Tl2Xc9lDQahIcNGXoK8UeC+0FlOeAsmgz0iZ42h5UvNyiCY1O8W4uT59M/q\nWvUV\r\n=U9IP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRgOsQR3+iDLXfqXz+eSDetu/l0SrUNh9ah9Z7iyqEMAIhAIL4G69EwqGkETvMOZSXcbFyMdW0LBiOCYzjFFGmlOKO"}]},"_npmUser":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-esc-pos_0.1.2_1639469636608_0.8329097206317932"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-13T13:56:49.922Z","0.1.0":"2021-12-13T13:56:50.241Z","modified":"2022-04-04T12:13:27.629Z","0.1.1":"2021-12-14T07:56:38.524Z","0.1.2":"2021-12-14T08:13:56.887Z"},"maintainers":[{"name":"ahmedb7r","email":"ahmedmagdyb7r@gmail.com"}],"description":"A React Native ESC/POS module to help you connect to your ESC/POS printer easily.","keywords":["bluetooth","esc/pos","network","printer","react-native","thermal printer"],"author":{"name":"ahmedb7r","email":"ahmedmagdyb7r@gamil.com"},"license":"MIT","readme":"# React Native ESC/POS module\n\n## THIS PROJECT IS NOT MAINTAINED ANYMORE, YOU ARE WELCOME TO CREATE YOUR OWN FORK =)\n\nA React Native ESC/POS module to help you connect to your ESC/POS printer easily.\nIt also has provide an intuitive way to design your layout, check below example to see how easy to get your layout ready!\n\n**PS: iOS IS NOT IMPLEMENTED YET**\n\n## Getting started\n\n`$ yarn add @leesiongchan/react-native-esc-pos`\n\n**PS: Skip below installation guide if you are using React Native >= 0.60**\n\n### Mostly automatic installation\n\n`$ react-native link @leesiongchan/react-native-esc-pos`\n\n### Manual installation\n\n#### iOS\n\n1. In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2. Go to `node_modules` ➜ `@leesiongchan` ➜ `react-native-esc-pos` and add `EscPos.xcodeproj`\n3. In XCode, in the project navigator, select your project. Add `libEscPos.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4. Run your project (`Cmd+R`)\n\n#### Android\n\n1. Open up `android/app/src/main/java/[...]/MainApplication.java`\n\n- Add `import leesiongchan.reactnativeescpos.EscPosPackage;` to the imports at the top of the file\n- Add `new EscPosPackage()` to the list returned by the `getPackages()` method\n\n2. Append the following lines to `android/settings.gradle`:\n   ```\n   include ':react-native-esc-pos'\n   project(':react-native-esc-pos').projectDir = new File(rootProject.projectDir, \t'../node_modules/@leesiongchan/react-native-esc-pos/android')\n   ```\n3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n   ```\n     compile project(':react-native-esc-pos')\n   ```\n\n## Android Bluetooth Permission\n\nAdd following permissions into `AndroidManifest.xml`\n\n```\n<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />\n<uses-permission android:name=\"android.permission.BLUETOOTH\" />\n<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\" />\n```\n\n## Usage\n\n```javascript\nimport EscPos from \"@leesiongchan/react-native-esc-pos\";\n\nconst design = `\nD0004           {<>}           Table #: A1\n------------------------------------------\n[ ] Espresso\n    - No sugar, Regular 9oz, Hot\n                              {H3} {R} x 1\n------------------------------------------\n[ ] Blueberry Cheesecake\n    - Slice\n                              {H3} {R} x 1\n\n{QR[Where are the aliens?]}\n{BC[Your barcode here]}\n{IMG[file://image/path/file.png]}\n`;\n\nasync function testPrinter() {\n  try {\n    // Can be `network` or `bluetooth`\n    EscPos.setConfig({ type: \"network\" });\n\n    // Connects to your printer\n    // If you use `bluetooth`, second parameter is not required.\n    await EscPos.connect(\"10.10.10.10\", 9100);\n\n    // Once connected, you can setup your printing size, either `PRINTING_SIZE_58_MM`, `PRINTING_SIZE_76_MM` or `PRINTING_SIZE_80_MM`\n    EscPos.setPrintingSize(EscPos.PRINTING_SIZE_80_MM);\n    // 0 to 8 (0-3 = smaller, 4 = default, 5-8 = larger)\n    EscPos.setTextDensity(8);\n    // Test Print\n    await EscPos.printSample();\n    // Cut half!\n    await EscPos.cutPart();\n    // You can also print image! eg. \"file:///longpath/xxx.jpg\"\n    await EscPos.printImage(file.uri);\n    // You can also print image with a specific width offset (scale down image by offset pixels)! eg. \"file:///longpath/xxx.jpg\"\n    await EscPos.printImageWithOffset(file.uri, offset);\n    // Print your design!\n    await EscPos.printDesign(design);\n    // Print QR Code, you can specify the size\n    await EscPos.printQRCode(\"Proxima b is the answer!\", 200);\n    // Print Barcode\n    // printBarCode({code}, {type}, {width}, {height}, {font}, {fontPosition})\n    // type: 65=UPC-A; 66=UPC-E; 67=EAN13; 68=EAN8; 69=CODE39; 70=ITF; 71=CODABAR; 72=CODE93; 73=CODE128}\n    // width: 2-6\n    // height: 0-255\n    // font: 0=FontA; 1=FontB\n    // fontPosition: 0=none; 1=top; 2=bottom; 3=top-bottom\n    await EscPos.printBarcode(\"Your barcode here\", 73, 3, 100, 0, 2);\n    // Cut full!\n    await EscPos.cutFull();\n    // Beep!\n    await EscPos.beep();\n    // Kick the drawer! Can be either `kickCashDrawerPin2` or `kickCashDrawerPin5`\n    await EscPos.kickCashDrawerPin2();\n    // Disconnect\n    await EscPos.disconnect();\n  } catch (error) {\n    console.error(error);\n  }\n}\n```\n\n### Scan for available bluetooth devices\n\n```javascript\nEscPos.scanDevices();\n```\n\n### Stop scanning\n\n```javascript\nEscPos.stopScan();\n```\n\n### Events\n\n```javascript\nEscPos.addListener(\"bluetoothDeviceFound\", (event) => {\n  if (event.state === EscPos.BLUETOOTH_DEVICE_FOUND) {\n    console.log(\"Device Found!\");\n    console.log(\"Device Name : \" + event.deviceInfo.name);\n    console.log(\"Device MAC Address : \" + event.deviceInfo.macAddress);\n  }\n});\n```\n\nTo listen to bluetooth state changes:\n\n```javascript\nEscPos.addListener(\"bluetoothStateChanged\", (event) => {\n  if (event.state === EscPos.BLUETOOTH_CONNECTED) {\n    console.log(\"Device Connected!\");\n    console.log(\"Device Name : \" + event.deviceInfo.name);\n    console.log(\"Device MAC Address : \" + event.deviceInfo.macAddress);\n  }\n});\n```\n\n### Constants\n\n- EscPos.PRINTING_SIZE_58_MM\n- EscPos.PRINTING_SIZE_78_MM\n- EscPos.PRINTING_SIZE_80_MM\n- EscPos.BLUETOOTH_CONNECTED\n- EscPos.BLUETOOTH_DISCONNECTED\n\n## Design Tags\n\n| Tag        | Description                                                                    |\n| ---------- | :----------------------------------------------------------------------------- |\n| {B}        | Bold.                                                                          |\n| {U}        | Underline.                                                                     |\n| {H1}       | Font Size. 2x2 / char                                                          |\n| {H2}       | Font Size. 1x2 / char                                                          |\n| {H3}       | Font Size. 2x1 / char                                                          |\n| {LS:?}     | Linespace. M = 24LS, L = 30LS                                                  |\n| {C}        | Align text to center.                                                          |\n| {R}        | Align text to right.                                                           |\n| {RP:?:?}   | Repeat text. Eg. {RP:5:a} will output \"aaaaa\".                                 |\n| {BC[?]}    | Print barcode.                                                                 |\n| {QR[?]}    | Print QR code.                                                                 |\n| {IMG[?]}   | Print image from a path.                                                       |\n| {IMG[?]:?} | Print image scaled down to make space for a width offset. Eg. {IMG[<path>]:32} |\n| {<>}       | Left-right text separation.                                                    |\n| {---}      | Create a \"---\" separator.                                                      |\n| {===}      | Create a \"===\" separator.                                                      |\n\n## TODO\n\n- [x] Android support\n- [ ] iOS support\n- [x] Print barcode\n- [ ] Add TypeScript support\n- [x] Bluetooth support\n- [ ] Serial port support\n- [ ] Add test\n- [x] Listen to the connection status\n","readmeFilename":"README.md","homepage":"https://github.com/ahmedB7r/react-native-esc-pos#readme","repository":{"type":"git","url":"git+https://github.com/ahmedB7r/react-native-esc-pos.git","baseUrl":"https://github.com/ahmedB7r/react-native-esc-pos"},"bugs":{"url":"https://github.com/ahmedB7r/react-native-esc-pos/issues"}}