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-jti
Exemplos 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.png
Estrutura de pastas:
raiz/
├── api/
│ ├── functions/
│ │ ├── arquivo.js
│ │ ├── arquivo2.js
│ └── router.js
├── usr/
│ └── img/
│ └── logo.png
└── server.js
Explicação:
- O arquivo
router.js
está localizado emraiz/api/
. - Para acessar
logo.png
que 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 test
Licença
Este projeto é licenciado sob os termos da Licença MIT.