danfse-pdf-generator
v1.0.1
Published
Geração local de DANFSe (PDF) a partir do XML da NFSe Nacional (NT 008/2026) via pdfmake
Downloads
55
Maintainers
Readme
danfse-pdf-generator
Geração local de DANFSe (PDF) a partir do XML da NFSe Nacional (NT 008/2026) via pdfmake. Sem dependência de APIs externas.
npm install danfse-pdf-generatorUso
import { parseNfseXml, generateDanfsePdf } from 'danfse-pdf-generator'
const xml = '<?xml version="1.0"...' // XML da NFSe
const dados = parseNfseXml(xml)
const pdf = await generateDanfsePdf(dados, {
ambienteGerador: '1', // '1' = Produção, '2' = Homologação
logoUrl: 'data:image/png;base64,...', // opcional
hideWarnings: false,
})
// pdf → Buffer do PDF (salve em disco, banco, ou response HTTP)API
| Função | Input | Output | Descrição |
|--------|-------|--------|-----------|
| parseNfseXml | xmlString: string | NfseDados | Parseia XML da NFSe e extrai todos os dados |
| generateDanfsePdf | dados: NfseDados, options? | Promise<Buffer> | Gera PDF do DANFSe localmente |
| getDanfseDefinition | dados: NfseDados, options? | object | Retorna a definição pdfmake para customização |
| formatCnpjCpf | val: any | string | Formata CPF/CNPJ (11/14 dígitos) |
| formatChaveAcesso | val: any | string | Formata chave de 44 dígitos em grupos de 4 |
| formatCurrency | val?: number | string | Formata moeda BRL ("R$ 1.234,56") |
| formatPercentage | val?: number | string | Formata percentual ("3,50%") |
| formatDateTime | val?: string | string | Formata data ISO → "10/03/2026 14:30:00" |
| formatDateOnly | val?: string | string | Formata data ISO → "10/03/2026" |
| formatCep | val: any | string | Formata CEP "22775-040" |
Para LLMs / Chat Agents
Este pacote foi documentado com JSDoc no estilo Google em todas as funções públicas e interfaces. Isso significa que LLMs (Copilot, Claude, ChatGPT, etc.) conseguem entender automaticamente como usar cada função.
Tool definition sugerida (function calling)
Para expor a geração de DANFSe como tool/function para um LLM:
{
"name": "gerarDanfse",
"description": "Gera o PDF do DANFSe (Documento Auxiliar da NFSe Nacional) localmente a partir do XML da nota fiscal. Retorna um Buffer do PDF.",
"parameters": {
"type": "object",
"properties": {
"xmlString": {
"type": "string",
"description": "XML completo da NFSe Nacional (NT 008/2026). Deve conter o elemento infNFSe."
},
"ambienteGerador": {
"type": "string",
"enum": ["1", "2"],
"description": "1=Produção (verde), 2=Homologação (vermelho). Default: 1"
},
"logoUrl": {
"type": "string",
"description": "URL ou data-uri base64 do logo do prestador (opcional)."
}
},
"required": ["xmlString"]
}
}Fluxo para LLM
- Usuário fornece XML da NFSe (arquivo ou string)
- LLM chama
parseNfseXml(xmlString)→ obtémNfseDadosestruturados - LLM chama
generateDanfsePdf(dados, options)→ obtémBufferdo PDF - LLM retorna o PDF para o usuário (download, link, etc.)
Tipos exportados (com JSDoc)
Todos os tipos (NfseDados, Prestador, Tomador, Servico, Impostos, Endereco) têm JSDoc completo descrevendo cada propriedade. A LLM pode inspecionar os types diretamente.
Dependências
- Node.js ≥ 18
- pdfmake (inclui fontes Roboto)
- fast-xml-parser
