printer-api/README.md
2022-02-28 01:35:19 +01:00

77 lines
2.2 KiB
Markdown

Provide a JSON REST API to `ESC/POS` printers. Most of the time these printers will be thermal printers.
# Usage
GET `/api/printer/name` to get the UUID of the printer.
GET `/api/printer/status` to get information about the current state of the printer.
To actually print something use POST `/api/printer/print`. The body is an JSON array of print instructions. Following instructions are available.
## Feed
`lines` and `dots` can be used at the same time.
```json
{
"type":"feed",
"lines":4,
"dots":50
}
```
## Text
Only `text` is required.
`alignment`: Can be `Right`,`Left`,`Center`. Default is `Left`.
`underline`,`bold`,`doubleHeight`,`doubleWidth` are obvious and default to `false`.
`fontB`: Use different font. Based on printer model. Default is `false`.
`lineSpacing`: Line spacings in dots. Default is unset.
`newLine`: Insert a new line after printing the text. Default is `true`.
```json
{
"type":"text",
"text":"Hello world",
"alignment":"Center",
"underline": false,
"bold": false,
"doubleHeight":false,
"doubleWidth":false,
"fontB":false,
"lineSpacing":23,
"newLine":true
}
```
## Barcode
`barcode`: Value of the barcode. Depending on the `barcodeType` it may only contain numeric characters. Require.
`barcodeType`: What type of barcode. Possible values are: `CODE128`, `UPC_A`,`UPC_E`,`JAN13_EAN13`,`JAN8_EAN8`,`CODE39`,`ITF`,`CODABAR_NW_7`,`CODE93`,`GS1_128`,`GS1_DATABAR_OMNIDIRECTIONAL`, `GS1_DATABAR_TRUNCATED`,`GS1_DATABAR_LIMITED`,`GS1_DATABAR_EXPANDED`. Default is `CODE128`. Depending on the printer modell not all types are supported.
`barcodeCode`: I honestly have no idea what exactly this changes. But it changes something. Default is `CODE_B`.
`alignment`: Just like `alignment` in the "Text" instruction.
`labelPos`: Position of the value of the barcode in text form. Possible values are : `None`, `Above`, `Below`, `Both`. Default is `Below`.
`height`: Height of the barcode in dots. Default is unset.
```json
{
"type":"barcode",
"barcode":"348234445AA",
"barcodeType":"CODE128",
"barcodeCode":"CODE_B",
"alignment":"Center",
"labelPos":"None",
"height":45,
}
```