JSPM

epicora-pdf

1.0.2
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 305
    • Score
      100M100P100Q58390F
    • License MIT

    Converte documentos Markdown em PDF com identidade visual Epicora

    Package Exports

    • epicora-pdf
    • epicora-pdf/dist/cli.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 (epicora-pdf) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    epicora-pdf

    Converta documentos Markdown em PDFs com identidade visual Epicora — em um único comando.

    CLI que transforma arquivos .md em PDFs profissionais, com tipografia, paleta de cores, cabeçalho com logo e rodapé de paginação padronizados pela marca Epicora. Gerado via Playwright/Chromium para máxima fidelidade visual.


    Instalação

    npm install -g epicora-pdf

    Após instalar, verifique se o Chromium (usado internamente pelo Playwright) está disponível:

    npx playwright install chromium

    Uso

    epicora-pdf <arquivo.md> [opções]

    Exemplos

    # Gera proposta.pdf no mesmo diretório do .md
    epicora-pdf proposta.md
    
    # Define o caminho de saída manualmente
    epicora-pdf proposta.md --output documentos/proposta-cliente.pdf
    
    # Gera e abre o PDF imediatamente
    epicora-pdf proposta.md --open

    Opções

    Flag Alias Descrição
    --output <caminho> -o Caminho de saída do PDF. Padrão: mesmo nome e diretório do .md
    --open Abre o PDF gerado automaticamente após a conversão
    --version -V Exibe a versão instalada
    --help -h Exibe as opções disponíveis

    Saída

    O PDF gerado segue o padrão visual da Epicora:

    • Formato: A4 com margens de 88px (topo/base) × 56px (laterais)
    • Cabeçalho: Logo da Epicora + URL epicora.com.br com faixa de gradiente colorida
    • Rodapé: Número de página em Violeta
    • Tipografia: Fonte Alexandria via Google Fonts
    • Syntax highlighting: Paleta neon no tema escuro para blocos de código

    Paleta de marca

    Nome Hex Uso
    Violeta #6100ff Cor primária, links, numeração, H3
    Grafite #383838 Texto principal, H1, H2
    Amarelo #daff19 Números e literais em código
    Verde-água #14ffb9 Strings em código, gradiente
    Vermelho #fd4950 Built-ins em código

    Markdown suportado

    O conversor suporta toda a especificação GFM (GitHub Flavored Markdown), incluindo:

    • Títulos H1 a H6 com estilos distintos por nível
    • Negrito, itálico, tachado, código inline e ==marcação==
    • Blocos de código com syntax highlighting automático para 180+ linguagens (via highlight.js)
    • Diagramas Mermaid — fluxogramas, sequências, Gantt, etc.
    • Tabelas com cabeçalho estilizado
    • Blockquotes com acento visual
    • Listas ordenadas, não-ordenadas e task lists (- [ ])
    • Imagens com bordas arredondadas e sombra
    • Links clicáveis
    • Régua horizontal (---)

    Quebras de página automáticas

    Cada H1 (exceto o primeiro, que funciona como título de capa) dispara automaticamente uma nova página no PDF. Isso permite estruturar documentos longos apenas com headings, sem nenhuma configuração extra.


    Estrutura do projeto

    epicora-pdf/
    ├── src/
    │   ├── cli.ts          # Ponto de entrada — CLI com Commander.js
    │   ├── renderer.ts     # Orquestrador — pipeline MD → PDF via Playwright
    │   ├── markdown.ts     # Conversão MD → HTML (marked + highlight.js)
    │   ├── template.ts     # HTML5 completo com Google Fonts e mermaid.js
    │   └── styles.ts       # CSS completo com paleta de marca Epicora
    ├── assets/
    │   └── logo.svg        # Logo embedded como base64 no cabeçalho
    ├── bin/
    │   └── epicora-pdf     # Shebang para execução global via npm
    └── dist/               # JavaScript compilado (gerado pelo build)

    Pipeline de conversão

    arquivo.md
      → CLI valida entrada e saída
      → marked converte MD em HTML (GFM + highlight.js)
      → template.ts monta HTML5 completo com fonts e estilos
      → Playwright/Chromium renderiza o HTML
      → Playwright aguarda renderização de diagramas Mermaid
      → PDF A4 exportado com cabeçalho/rodapé

    Requisitos

    • Node.js >= 18.0.0
    • Chromium — instalado via npx playwright install chromium
    • Conexão com internet no primeiro uso (carrega Google Fonts e Mermaid via CDN)

    Desenvolvimento

    Este é um repositório privado. Clone com acesso autorizado:

    git clone https://github.com/Epicora-Software-House/epicora-pdf.git
    cd epicora-pdf
    npm install
    npx playwright install chromium

    Comandos disponíveis

    npm run dev -- input.md --output output.pdf --open   # Executa via ts-node (sem build)
    npm run build                                         # Compila TypeScript → dist/
    npx tsc --noEmit                                      # Type-check sem emitir arquivos
    node dist/cli.js input.md --output output.pdf         # Executa o build compilado

    Modificando estilos

    Toda a aparência visual está centralizada em src/styles.ts. As variáveis CSS no topo do arquivo controlam a paleta completa. Após alterações, rode npm run build para recompilar.

    Modificando o cabeçalho ou rodapé

    O cabeçalho e rodapé são gerados em src/renderer.ts pelas funções buildHeaderTemplate e buildFooterTemplate. Eles utilizam inline styles (requisito do Playwright para templates de cabeçalho/rodapé em PDF).


    Licença

    MIT © Epicora