A um tempo atras precisei lidar com processamento de dados provenientes de código de barra de boleto e, depois de entender que o código de barras não reflete o numero exibido no boleto, resolvi criar esta classe utilitária para fazer a transformação bilateral dos dados.
Nesta classe é possível trabalhar com boletos tradicionais e/ou contas de serviços contratados (luz, água, gás).
Classe: https://gist.github.com/adrianoluis/610d58655c48a187ffaa7ed85cbe0843
Testes: https://gist.github.com/adrianoluis/f25d5ef62c5e9bd1336d58d6f90ad242