npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-boleto-rm

v1.1.8

Published

Geração Boleto no Node.js

Downloads

160

Readme

node-boleto-rm

Correção 14/12/2024, acrescentado ai lauout a para mostrar cobrança de Juros, Multa e o valor total caso o boleto esteja vencido consultar e passar os valor conforme descrito abaixo!

**Geração de boleto bancário em Node.js. Os algoritmos de geração da linha digitável e do código de barras foram inspirados no boletophp.

Projeto é um fork do node-boleto só acrescentado outros layouts de impressão de outros bancos que necessitei ai vi a necessidade de criar este projeto para mim.

**No caso estou utilizando para após o boleto ser gerado no ERP busco os dados no banco de dados do mesmo e consiga gerar online para o cliente em alguma plataforma desenvolvida para este propositos, pois foi exatamente o cenario que precisei e tinha esta usando varios pacotes ai decide construir um só.

Bancos suportados (layout's impressão de boletos)

  • Santander - 33
  • Bradesco - 237
  • Brasil - 1
  • Caixa - 104
  • Daycoval - 707
  • Itau - 341

Instalação

npm install node-boleto-rm

Exemplo de uso

Emitindo um boleto:

  • os dados podem vir de uma base de dados só lembrar de olhar no pacote tem a pasta banks os número dos banco suportados ai no construtor Boletorm lembrar passar a 'banco': 'número do banco' Número do banco quer gerar a partir dos dados informados, aonde pode ate fazer isso direto na query e já retornar tal informação e somente alimentar banco com este valor. Conforma mostrado abaixo.
var Boletorm = require('node-boletor-rm').Boleto;

var boleto = new Boletorm({
  
  'banco': '33', // nome do banco dentro da pasta 'banks'
  'data_emissao': new Date(), //data emissão (exemplo gera data hoje)
  'logoURLEmp': '' //link para logo da empresa * de preferencia somente logo sem textos
  'data_vencimento': new Date(new Date().getTime() + 5 * 24 * 3600 * 1000), // 5 dias futuramente,
 'valor': `198450`, // R$ 1984,50 (valor sem separador de casas decimais)
 'multa': `2778`, //passar 0 ou - ou caso tenha multa passar o valor também sem separador de casas decimais 
 'juros': `19845`, //caso tenha juros passar o valor ou zero
 'valorcobrado': `221073`, //valor + juros + multa = R$ 2.210,73
  'nosso_numero': `1234567`,
  'barcode_data':  `3435645645567567` //dados do codigo de barras,
 // 'barcode_count': `${i}`, //caso vá utilizar laço de repetição passar o index para gerar mais de um boleto por vez
  'linha_digitavel': `456756878678678687`,
  'numero_documento': `1234567`,
  'instrucoes': `INSTRUÇÕES DO BOLETO`,
  'pagador': `JOSE`,
      'pagador_cpf_cnpj': `05055555050555`, //somente numeros
      'pagador_endereco_rua_num': `RUA DEZ 10`,
      'pagador_endereco_bairro': `CENTRO`,
      'pagador_endereco_cep': `55555555`, //somente numeros
      'pagador_endereco_cidade_estado': `NATAL-RN`,
      'pagador_outras_informacoes': ``,
  'cedente': `EMPRESA`,
  'cedente_cnpj': `99999999999999`, // sem pontos e traços
  'cedente_endereco_rua_num': `RUA ONZE 22`,
  'cedente_endereco_bairro': `CENTRO`,
  'cedente_endereco_cep': `5959090`,
  'cedente_endereco_cidade_estado': `NATAL-RN`,
  'agencia': `3978`,
  'codigo_cedente':  "6404154", // PSK (código da carteira),
  //'carteira': "102"
  //'barcodeRenderEngine': 'bmp'

});

console.log("Linha digitável: " + boleto['linha_digitavel'])

boleto.renderHTML(function(html){
  console.log(html);
});

Parseando o arquivo-retorno EDI do banco:

  • não validado em todos os bancos
var ediParser = require('node-boleto').EdiParser,
	fs = require('fs');

var ediFileContent = fs.readFileSync("arquivo.txt").toString();

var parsedFile = ediParser.parse("santander", ediFileContent);

console.log("Boletos pagos: ");
console.log(parsedFile.boletos);

Renderização do código de barras

Atualmente, há duas maneiras de renderizar o código de barras: img e bmp.

A engine img utiliza imagens brancas e pretas intercaladas para gerar o código de barras. Dessa forma, todos os browsers desde o IE6 são suportados. Esse modo de renderização, porém, é um pouco mais pesado, já que muitas divs são inseridas no HTML para a renderização.

A engine bmp aproveita da característica monodimensional dos códigos de barra e gera apenas a primeira linha de pixels do boleto, repetindo as outras linhas por CSS. É mais leve e funciona na maioria dos browser - IE apenas a partir da versão 8.

Para alterar a engine de renderização padrão:

Boleto.barcodeRenderEngine = 'bmp';

Licença

(The MIT License)