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-pdfApós instalar, verifique se o Chromium (usado internamente pelo Playwright) está disponível:
npx playwright install chromiumUso
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 --openOpçõ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.brcom 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
H1aH6com estilos distintos por nível - Negrito, itálico,
tachado,código inlinee ==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 chromiumComandos 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 compiladoModificando 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