docs: update API contracts for queued printing
This commit is contained in:
parent
ef83703f5a
commit
258b97eb15
|
|
@ -37,33 +37,35 @@ Retorna a lista de impressoras instaladas no servidor onde a API está rodando.
|
||||||
|
|
||||||
### 2. Imprimir HTML (Etiquetas/Layouts)
|
### 2. Imprimir HTML (Etiquetas/Layouts)
|
||||||
|
|
||||||
Converte um código HTML (com suporte a Tailwind CSS) para PDF e imprime na impressora selecionada. Ideal para etiquetas.
|
Converte um código HTML (com suporte a Tailwind CSS) para PDF e imprime na impressora selecionada via Fila de Processamento (BullMQ).
|
||||||
|
|
||||||
- **Método:** `POST`
|
- **Método:** `POST`
|
||||||
- **Rota:** `/printer/print-html`
|
- **Rota:** `/printer/print-html` ou `/printer/:printerName/print-html`
|
||||||
- **Corpo da Requisição (JSON):**
|
- **Corpo da Requisição (JSON):**
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"html": "<div class='text-xl font-bold'>Minha Etiqueta</div>...",
|
"html": "<div class='text-xl font-bold'>Minha Etiqueta</div>...",
|
||||||
"printerName": "POS-80", // Nome exato da impressora (conforme retornado na listagem)
|
"printerName": "POS-80", // Opcional se passado na URL
|
||||||
"width": "60mm", // Opcional. Largura do papel/etiqueta. Default: 80mm
|
"width": "60mm", // Opcional. Largura do papel/etiqueta. Default: 80mm
|
||||||
"height": "40mm" // Opcional. Altura da etiqueta. Default: auto
|
"height": "40mm", // Opcional. Altura da etiqueta. Default: auto
|
||||||
|
"jobId": "meu-id-unico-123" // Opcional. ID para idempotência na fila.
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Detalhes:**
|
- **Detalhes:**
|
||||||
- O backend injeta automaticamente o script do Tailwind CSS.
|
- O backend injeta automaticamente o script do Tailwind CSS.
|
||||||
- O HTML é renderizado via Puppeteer (Chrome headless).
|
- O HTML é renderizado via Puppeteer (Chrome headless).
|
||||||
|
- Tarefas são processadas de forma assíncrona via Redis/BullMQ.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 3. Imprimir Texto Simples (ESC/POS)
|
### 3. Imprimir Texto Simples (ESC/POS)
|
||||||
|
|
||||||
Envia comandos de texto diretamente para a impressora. Ideal para cupons simples e rápidos, sem formatação complexa.
|
Envia comandos de texto diretamente para a impressora. Ideal para cupons simples e rápidos.
|
||||||
|
|
||||||
- **Método:** `POST`
|
- **Método:** `POST`
|
||||||
- **Rota:** `/printer/print`
|
- **Rota:** `/printer/print` ou `/printer/:printerName/print`
|
||||||
- **Corpo da Requisição (JSON):**
|
- **Corpo da Requisição (JSON):**
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|
@ -76,7 +78,7 @@ Envia comandos de texto diretamente para a impressora. Ideal para cupons simples
|
||||||
],
|
],
|
||||||
"alignment": "center", // "left", "center", "right". Default: left
|
"alignment": "center", // "left", "center", "right". Default: left
|
||||||
"upsideDown": false, // Se true, imprime de cabeça para baixo
|
"upsideDown": false, // Se true, imprime de cabeça para baixo
|
||||||
"printerInterface": "POS-80" // Pode ser nome da impressora (USB) ou "tcp://192.168.1.100" (Rede)
|
"printerInterface": "POS-80" // Opcional se passado na URL. Suporta "tcp://192.168.1.100" ou nome da impressora.
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -98,6 +100,7 @@ export interface PrintHtmlPayload {
|
||||||
printerName: string;
|
printerName: string;
|
||||||
width?: string;
|
width?: string;
|
||||||
height?: string;
|
height?: string;
|
||||||
|
jobId?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface PrintTextPayload {
|
export interface PrintTextPayload {
|
||||||
|
|
@ -107,3 +110,7 @@ export interface PrintTextPayload {
|
||||||
printerInterface?: string;
|
printerInterface?: string;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Swagger
|
||||||
|
|
||||||
|
A documentação interativa completa (OpenAPI) está disponível em `/api`. Lá você pode testar todos os endpoints e ver os esquemas detalhados de cada DTO.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue