JSPM

gerador-etiqueta

1.0.5
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 513
    • Score
      100M100P100Q78018F
    • License MIT

    Biblioteca para gerar etiquetas do sistema Cardea

    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-etiqueta

    Desenvolvimento local

    Clone o repositório e instale as dependências:

    git clone <repo-url>
    cd gerador-etiqueta
    npm install

    Uso 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 PDFDocument retornado por gerar já 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 local

    Scripts disponíveis

    • npm run build: compila o código TypeScript para dist/.
    • npm run test: gera uma etiqueta de exemplo em dist/src/etiqueta.pdf após compilação.
    • npm run dev: recompila automaticamente em mudanças e executa o teste.

    Fluxo de desenvolvimento sugerido

    1. Execute npm run build para garantir que o TypeScript esteja consistente.
    2. Rode npm run test e abra o arquivo gerado para validar a etiqueta.
    3. 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 TAgendamento em types.ts e ajuste o layout conforme necessário.
    • Suporte a múltiplas etiquetas: utilize o PDFDocument retornado 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.