Download the PHP package cristianomzn/danfse-nacional without Composer
On this page you can find all versions of the php package cristianomzn/danfse-nacional. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download cristianomzn/danfse-nacional
More information about cristianomzn/danfse-nacional
Files in cristianomzn/danfse-nacional
Package danfse-nacional
Short Description Gerador de DANFSe Nacional. Pronto para a NFS-e v2.0. Em conformidade com a NT008 e NT009. Suporta os novos campos da Reforma Trubutária (CBS e IBS).
License MIT
Homepage https://github.com/CristianoMZN/danfse-nacional
Informations about the package danfse-nacional
DANFSe Nacional
Fork do repositório original
andrevabo/danfse-nacional, modificado para operar com o padrão NFSe 2.0 (NT 008/2026 e NT 009/2026 — IBS/CBS).
Biblioteca PHP para geração de PDF do DANFSe (Documento Auxiliar da Nota Fiscal de Serviços eletrônica) a partir do XML da NFS-e Padrão Nacional.
A biblioteca recebe o XML de uma NFS-e autorizada e devolve o conteúdo binário de um PDF em A4 retrato, sem nenhuma dependência de framework. Pode ser usada em projetos Laravel, Symfony, ou em scripts PHP puro.
O objetivo principal desta biblioteca é criar um documento o mais fiel possível ao DANFSe original gerado pela API da SEFAZ, com apenas alguns ajustes para melhorar a legibilidade.
Nas NFS-e do ambiente de Homologação, o PDF apresenta a mesma mensagem do documento original, "NFS-e SEM VALIDADE JURÍDICA", além de uma marca d'água adicional para diferenciar os PDFs de teste dos emitidos em Produção.
Compatibilidade
| Versão NFS-e | Norma Técnica | Status |
|---|---|---|
| v1.01 | Padrão Nacional original | Suportada |
| v2.0 | NT 008/2026 (DANFSe) + NT 009/2026 (XML IBS/CBS) | Suportada |
A biblioteca é retrocompatível: XMLs v1.01 (sem IBS/CBS) continuam funcionando normalmente. A seção IBS/CBS no PDF só é renderizada quando os dados estão presentes no XML.
Exemplos
- DANFSe - Produção
- DANFSe - Homologação
Requisitos
PHP 8.1 ou superior com as extensões simplexml, mbstring e fileinfo habilitadas.
Instalação
Uso básico
O caminho mais direto é passar o XML e receber o PDF em uma única chamada.
NFS-e v2.0 com IBS/CBS (NT 009/2026)
Para XMLs v2.0 que incluem os grupos IBS/CBS (Imposto sobre Bens e Serviços / Contribuição sobre Bens e Serviços), a biblioteca renderiza automaticamente a seção de tributação do IBS/CBS no DANFSe:
Acesse os campos IBS/CBS via DTOs:
Parse NFSe (sem gerar PDF)
É possível extrair os dados do XML da NFS-e sem gerar o PDF. A biblioteca oferece duas abordagens: retornar um array associativo ou um objeto DTO tipado.
Como array
Use XmlToArray para converter o XML em um array PHP associativo:
Como objeto DTO
Use DanfseGenerator::parseXml() para obter um objeto NFSe com propriedades tipadas:
Ambas as abordagens funcionam com XMLs v1.01 e v2.0 (IBS/CBS). Para XMLs v2.0, os campos IBS/CBS também estarão disponíveis:
Veja o exemplo completo em
examples/example_parse.php.
Estrutura dos dados mapeados
O método parseXml() retorna um objeto DanfseNacional\Dto\NFSe com propriedades tipadas e readonly. A hierarquia segue a estrutura do XML da NFS-e Nacional:
Todos os campos opcionais no esquema da NFS-e são representados como propriedades nullable ou com valor padrão de string vazia, portanto o acesso nunca lança exceções por campo ausente.
Logo da empresa
Por padrão, o cabeçalho do documento exibe o logo incluído no pacote. Para substituí-lo pelo logo da empresa, informe o caminho do arquivo de imagem via logoPath. A biblioteca detecta o MIME type e monta o data URI automaticamente.
Para suprimir o logo completamente, passe false.
Caso o dado já esteja disponível como data URI (por exemplo, quando o logo é armazenado em banco de dados), é possível fornecê-lo diretamente via logoDataUri. Se ambos logoDataUri e logoPath forem informados, logoDataUri tem precedência. logoPath: false sempre suprime o logo, independente de logoDataUri.
Identificação do município
O cabeçalho do DANFSe possui um espaço reservado para a identificação do ente municipal emissor. Por padrão esse espaço fica em branco. Para preenchê-lo, configure MunicipalityBranding com o nome do município, a secretaria responsável e o e-mail de contato. O logotipo do município segue a mesma convenção: aceita caminho de arquivo ou data URI.
Geração em dois passos
É possível acessar o método parseXml() para obter um objeto DanfseNacional\Dto\NFSe com os dados da NFS-e antes de gerar o PDF.
Geração do HTML intermediário
Para inspecionar o HTML gerado antes da renderização, útil em testes e depuração, use generateHtml().
Entrega da resposta em aplicações web
Em vez de salvar o arquivo em disco, o conteúdo binário do PDF pode ser enviado diretamente como resposta HTTP.
Dependências
A biblioteca depende exclusivamente de pacotes sem acoplamento a frameworks:
dompdf/dompdf para renderização do HTML em PDF, cuyz/valinor para o mapeamento seguro do array XML para os DTOs tipados, e bacon/bacon-qr-code para a geração do QR Code de consulta pública.
Testes
All versions of danfse-nacional with dependencies
ext-simplexml Version *
ext-mbstring Version *
ext-fileinfo Version *
dompdf/dompdf Version ^3.0
cuyz/valinor Version ^1.14
bacon/bacon-qr-code Version ^3.0