d-danfe-jti v1.0.4
d-danfe-jti
Este projeto é um fork de d-danfe com melhorias para suportar links de logos e ajuste automático do tamanho da imagem para um tamanho predefinido.
Visualizador de DANFE (Documento Auxiliar Da Nota Fiscal Eletrônica) em HTML.
Preparação
Pré-requisitos
NodeJS 8.x ou superior
Instalação
npm i d-danfe-jtiExemplos de Uso
Usando URL da logomarca
const danfe = require('d-danfe-jti');
const logo = 'URL da logomarca da empresa'; // Opcional. Caso não seja informado, o campo ficará vazio.
const Danfe = danfe.fromXML('conteúdo XML', logo);
console.log(Danfe.toHtml());Dica: Recomenda-se utilizar serviços como o Postimage para hospedar sua logomarca e fornecer o URL direto da imagem.
Usando um arquivo de logo local
Sempre passar o caminho relativo, pois será resolvido pelo pacote:
const danfe = require('d-danfe-jti');
const logo = './usr/img/logo.png'; // Opcional. Caso não seja informado, o campo ficará vazio.
const Danfe = danfe.fromXML('conteúdo XML', logo);
console.log(Danfe.toHtml());Dica: Caso precise acessar um arquivo localizado em subpastas, como o router.js na estrutura abaixo, ajuste o caminho relativo para voltar um nível na hierarquia.
Por exemplo, no caso do arquivo router.js (localizado em raiz/api/) acessando o logo.png, o caminho relativo correto seria:
../usr/img/logo.pngEstrutura de pastas:
raiz/
├── api/
│ ├── functions/
│ │ ├── arquivo.js
│ │ ├── arquivo2.js
│ └── router.js
├── usr/
│ └── img/
│ └── logo.png
└── server.jsExplicação:
- O arquivo
router.jsestá localizado emraiz/api/. - Para acessar
logo.pngque está emraiz/usr/img, é necessário sair da pasta api usando../e então especificar o caminhousr/img/logo.png.
Especificações
Funções
- Gerar representação do DANFE em HTML a partir de um arquivo XML.
- Formatação somente no formato retrato.
- Contagem do número de folhas geradas.
Limitações
- Conversão para outros formatos (ex.: PDF ou imagens): Utilize ferramentas externas, como Puppeteer.
- Validação dos campos da NFE: Não há validação dos valores nos campos.
- TODO: Não possui geração do código de barras.
- TODO: Não possui quebra do número de folhas de acordo com a quantidade de itens.
- TODO: Não possui a representação em formato paisagem.
Testes
npm run testLicença
Este projeto é licenciado sob os termos da Licença MIT.