⚠️

etiquetas.js
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-alpha.20 • Public • Published

🏷️ Sistema de Etiquetas - Etiquetas.js

Sistema completo para geração de etiquetas de peças, tamponamentos, insumos, retalhos e volumes com suporte a impressão e download de PDFs.

🚀 Instalação

npm install etiquetas.js

⚙️ Configuração Inicial

import etiquetas from 'etiquetas.js';

// Inicializar o sistema
etiquetas.init({
  token: '<jwt-token>',
  baseURL: 'https://api.exemplo.com' // OBRIGATÓRIO: URL base da API
});

📚 API Principal

<jwt-token> é utilizado como authorization na api dinabox para obter os templates de etiqueta

Inicialização e Configuração

// Inicializar sistema
etiquetas.init({
  token: '<jwt-token>', // Token JWT para autenticação
  baseURL: 'https://api.exemplo.com', // URL base da API (OBRIGATÓRIO)
  autoConnectPrinter: true, // Auto-conectar ao SSE da impressora (padrão: true)
  defaultTransformer: { // Configuração do transformer (opcional)
    fieldMap: 'legacy' // Opções: 'legacy', 'custom', 'none'
  }
});


// Verificar status da impressora
const status = await etiquetas.getPrinterStatus();

Geração de Etiquetas

const labelData = [{variableProps: {

// Gerar etiqueta de peça
[{
  <all-variables>
}, specialProps: {
  <all-specialprops>
}] 
O tamanho do array de labelData é a quantidade de etiquetas que serão geradas. Os dados   <all-variables> e <all-specialprops>

const pdfPeca = await etiquetas.makeLabel({variableProps: {
  PROJETO_ID:123

},specialProps: {
  lamination: {
    
    material_id:"123",
    edges: {
      left_id:"123",
      right_id:null,
      bottom_id:"123",
      top_id:"245"
    }
    
  },
  
  }
}}, <label-id>);

Saída e Impressão

// Download de PDF
await etiquetas.downloadPDF(pdfBuffer, 'etiqueta.pdf');

// Enviar para impressora
await etiquetas.sendToPrinter(pdfBuffer);

// Envio inteligente (imprime se conectado, senão faz download)
await etiquetas.sendLabel(labelData, <label-id>);

🎨 Templates

Templates Disponíveis

Utilizando a API das labels busque o ID do template

Cada arquivo contém a definição de variáveis e propriedades especiais que podem ser usadas na geração das etiquetas correspondentes.

📑 Variáveis e SpecialProps dos Templates

Abaixo estão listadas todas as variáveis (variableProps) e propriedades especiais (specialProps) disponíveis para uso em qualquer template de etiqueta. Use-as conforme o tipo de etiqueta desejado.

Lista universal de variableProps

  • {{PROJETO_NOME}}, {{PROJETO_ID}}, {{LOTE_ID}}, {{CLIENTE_NOME}}, {{MODULO_NOME}}, {{MODULO_QTD}}, {{MODULO_REF}}, {{MODULO_OBS}}, {{PECA_ID}}, {{PECA_CODIGO}}, {{PECA_REF}}, {{PECA_INDICE}}, {{PECA_INDICE2}}, {{PECA_NOME}}, {{PECA_OBS}}, {{LARGURA}}, {{ALTURA}}, {{ESPESSURA}}, {{MN}}, {{MA}}, {{ML}}, {{FURO_A}}, {{FURO_A2}}, {{FURO_B}}, {{FURO_B2}}, {{FE}}, {{FD}}, {{FS}}, {{FI}}, {{PECA_TIPO}}, {{MATERIAL_NOME}}, {{TAMPONAMENTO_ID}}, {{TAMPONAMENTO_REF}}, {{TAMPONAMENTO_QT}}, {{TAMPONAMENTO_PESO}}, {{TAMPONAMENTO_NOME}}, {{INSUMO_NOME}}, {{INSUMO_ID}}, {{INSUMO_DIMENSOES}}, {{INSUMO_QTD}}, {{INSUMO_PESO}}, {{INSUMO_REF}}, {{INSUMO_MARCA}}, {{INSUMO_CATEGORIA}}, {{INSUMO_FABRICANTE}}, {{RETALHO_ID}}, {{DATA_CRIACAO}}, {{RETALHO_INDICE}}, {{LADO_USINAGEM}}, {{RETALHO_NOME}}, {{RETALHO_QT}}, {{RETALHO_PESO}}, {{RETALHO_DIMENSOES}}, {{RETALHO_MATERIAL}}, {{RETALHO_ORIGEM}}, {{CODIGO_A}}, {{CODIGO_B}}, {{FURO_A_SD}}, {{FURO_B_SD}}, {{FURO_TOPO}}, {{VOLUME_ID}}, {{VOLUME_NOME}}, {{VOLUME_PESO}}, {{VOLUME_DATA}}, {{VOLUME_DESCRICAO}}, {{VOLUME_PECAS}}, {{VOLUME_DIMENSOES}}

Observação: Você pode usar qualquer combinação dessas variáveis em qualquer template, desde que o template utilize o campo correspondente.


Lista universal de specialProps

  • rect: Retângulo. Dados necessários: já vem no template.
  • lamination: Desenha bordas de laminação conforme materiais. Dados necessários: informações de borda e material (edge_left_id, material_id, etc).
  • enhancedLamination: Laminação detalhada, com indicação visual de materiais e furos. Dados necessários: dados de peça, bordas e furos (holes_diagram, width, height, etc).
  • identifierByProject: Gera um identificador visual (preto e branco) para o projeto. Dados necessários: project_id, numberByProject.
  • colorfulIdentifierByProject: Igual ao anterior, mas colorido. Dados necessários: project_id, numberByProject, color.
  • barCode: Gera um código de barras. Dados necessários: código a ser convertido (originBarcode, customBarcode, code_a, code_b, etc).
  • miniSheet: Miniatura da chapa. Dados necessários: lista de partes (parts), dimensões da chapa (height, width).
  • miniPartA: Miniatura da peça (lado A). Dados necessários: dados da peça (width, height, index).
  • miniPartB: Miniatura da peça (lado B). Dados necessários: dados da peça (width, height, index).
  • Image: Imagem. Dados necessários: já vem no template.
  • text: Texto estático. Dados necessários: já vem no template.
  • volumeContent: Gera uma tabela de itens do volume. Dados necessários: itemList (array de itens do volume).

Observação: Você pode usar qualquer combinação dessas specialProps em qualquer template, desde que o template utilize o campo correspondente.

Readme

Keywords

none