# capacitor-pozo-printer
Capacitor plugin for Pozo Retail thermal printer integration (USB / ESC POS)
## Install
To use npm
```bash
npm install capacitor-pozo-printer
````
To use yarn
```bash
yarn add capacitor-pozo-printer
```
Sync native files
```bash
npx cap sync
```
## API
* [`requestPermissions()`](#requestpermissions)
* [`scanBluetooth()`](#scanbluetooth)
* [`scanUsb()`](#scanusb)
* [`printBluetooth(...)`](#printbluetooth)
* [`printNetwork(...)`](#printnetwork)
* [`printUsb(...)`](#printusb)
* [Interfaces](#interfaces)
### requestPermissions()
```typescript
requestPermissions() => Promise
```
**Returns:** Promise<PermissionResult>
--------------------
### scanBluetooth()
```typescript
scanBluetooth() => Promise<{ devices: PrinterDevice[]; }>
```
Scan paired Bluetooth devices
**Returns:** Promise<{ devices: PrinterDevice[]; }>
--------------------
### scanUsb()
```typescript
scanUsb() => Promise<{ devices: PrinterDevice[]; }>
```
Scan connected USB devices
**Returns:** Promise<{ devices: PrinterDevice[]; }>
--------------------
### printBluetooth(...)
```typescript
printBluetooth(options: BluetoothPrintOptions) => Promise<{ success: boolean; }>
```
Print via Bluetooth SPP
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | BluetoothPrintOptions |
**Returns:** Promise<{ success: boolean; }>
--------------------
### printNetwork(...)
```typescript
printNetwork(options: NetworkPrintOptions) => Promise<{ success: boolean; }>
```
Print via Network/LAN/WiFi (TCP port 9100)
| Param | Type |
| ------------- | ------------------------------------------------------------------- |
| **`options`** | NetworkPrintOptions |
**Returns:** Promise<{ success: boolean; }>
--------------------
### printUsb(...)
```typescript
printUsb(options: UsbPrintOptions) => Promise<{ success: boolean; }>
```
Print via USB OTG
| Param | Type |
| ------------- | ----------------------------------------------------------- |
| **`options`** | UsbPrintOptions |
**Returns:** Promise<{ success: boolean; }>
--------------------
### Interfaces
#### PermissionResult
| Prop | Type |
| --------------- | ---------------------------------------------- |
| **`bluetooth`** | 'granted' \| 'denied' \| 'prompt' |
| **`network`** | 'granted' \| 'denied' \| 'prompt' |
#### PrinterDevice
| Prop | Type |
| ------------- | ------------------- |
| **`name`** | string |
| **`address`** | string |
#### BluetoothPrintOptions
| Prop | Type |
| ------------- | --------------------- |
| **`address`** | string |
| **`data`** | number[] |
#### NetworkPrintOptions
| Prop | Type |
| ---------- | --------------------- |
| **`host`** | string |
| **`port`** | number |
| **`data`** | number[] |
#### UsbPrintOptions
| Prop | Type |
| -------------- | --------------------- |
| **`data`** | number[] |
| **`deviceId`** | string |