Package Exports
- gerador-etiqueta
 - gerador-etiqueta/dist/src/index.js
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gerador-etiqueta) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Gerador de Etiquetas Cardea
Biblioteca em TypeScript/Node.js para gerar etiquetas em PDF utilizadas pelo sistema Cardea. As etiquetas são otimizadas para impressão em formato paisagem (130 x 90 mm) e incluem informações essenciais do agendamento do paciente.
Visão geral
- Renderização de etiquetas em PDF a partir de objetos de agendamento.
 - Layout pronto para impressão com hierarquia tipográfica ajustada.
 - Destaque automático para pacientes com risco de queda.
 - Exportações em TypeScript prontas para uso em aplicações Node.js ou servidores serverless.
 
Pré-requisitos
- Node.js >= 18
 - npm ou outro gerenciador de pacotes compatível
 
Instalação
npm install gerador-etiquetaDesenvolvimento local
Clone o repositório e instale as dependências:
git clone <repo-url>
cd gerador-etiqueta
npm installUso rápido
import fs from "node:fs";
import { gerar, TAgendamento } from "gerador-etiqueta";
const agendamento: TAgendamento = {
  paciente: {
    nome: "Maria Oliveira",
    nome_social: "Maria O.",
    cpf: "123.456.789-00",
    data_nascimento: new Date("1984-03-12"),
    riscoDeQueda: false,
  },
  data: new Date("2025-02-25"),
  hora: "10:00",
};
const pdf = gerar(agendamento);
pdf.pipe(fs.createWriteStream("etiqueta.pdf"));Observação: o
PDFDocumentretornado porgerarjá está pronto para ser encadeado em qualquer stream de escrita.
API
gerar(agendamento: TAgendamento): PDFKit.PDFDocument
| Campo | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
paciente.nome | 
string | 
Sim | Nome civil do paciente. Utilizado como fallback caso nome_social esteja vazio. | 
paciente.nome_social | 
string | 
Sim | Nome exibido com maior destaque na etiqueta. | 
paciente.cpf | 
string | 
Sim | Campo formatado conforme informado. | 
paciente.data_nascimento | 
Date | 
Sim | Formatado automaticamente em pt-BR. | 
paciente.riscoDeQueda | 
boolean | 
Sim | Se true, imprime selo de alerta em vermelho. | 
data | 
Date | 
Sim | Data do agendamento (não exibida por padrão no layout atual). | 
hora | 
string | 
Sim | Horário do agendamento (não exibido no layout atual, mas disponível para ajustes futuros). | 
Saída do PDF
- Formato paisagem (
layout: "landscape"). - Dimensões: 130 x 90 mm.
 - Margem zero para aproveitar toda a área da etiqueta.
 - Fonte padrão Helvetica com variações Helvetica-Bold quando necessário.
 - Informação de autoria preenchida nos metadados (
Author,Creator,Producer). 
Estrutura do projeto
src/
 ├─ gerador/
 │   ├─ etiquetas/
 │   │   └─ agendamento/    # Implementação da etiqueta de agendamento
 │   │       ├─ index.ts
 │   │       ├─ pdf.ts
 │   │       └─ types.ts
 │   └─ utils/               # Funções de apoio
 │       └─ index.ts
 ├─ index.ts                  # Ponto de entrada do pacote
 └─ test.ts                   # Exemplo de geração localScripts disponíveis
npm run build: compila o código TypeScript paradist/.npm run test: gera uma etiqueta de exemplo emdist/src/etiqueta.pdfapós compilação.npm run dev: recompila automaticamente em mudanças e executa o teste.
Fluxo de desenvolvimento sugerido
- Execute 
npm run buildpara garantir que o TypeScript esteja consistente. - Rode 
npm run teste abra o arquivo gerado para validar a etiqueta. - Ajuste o layout em 
src/gerador/etiquetas/agendamento/pdf.ts, se necessário. 
Personalização
- Estilização: adapte tamanhos de fonte, cores e posições dentro de 
pdf.ts. - Novos campos: adicione propriedades à interface 
TAgendamentoemtypes.tse ajuste o layout conforme necessário. - Suporte a múltiplas etiquetas: utilize o 
PDFDocumentretornado para criar novas páginas ou combinar com outros geradores. 
Licença
Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Contribuições
Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias, correções ou novas etiquetas.