Sobre a classe, eu concordo com a alteração do * 30 me deu erro também aqui, mas ai migrei o meu arquivo para o CNAB 240 que possui mais opções e não tinha esse problema.
Mas precisei fazer ajustes também. na verdade ele não esta mais de acordo com algumas coisas do manual, notei nas partes de instruções, não tinha como preencher porque não achei as propriedades para isso.
a mais importante seria a do Registro S onde vai as mensagens do boleto para o banco, então mudei isso.
Na ACBRBoleto criei:
fInstrucao5 : String;
fInstrucao6 : String;
fInstrucao7 : String;
fInstrucao8 : String;
fInstrucao9 : String;
e na da Bancoob mudei
// Registro detalhe S
Result := Result + #13#10 + IntToStrZero(ACBrBanco.Numero, 3) +
// Código do banco
'0001' + // Número do lote
'3' + // Tipo do registro: Registro detalhe
IntToStrZero((I) + 1, 5) +
// 9 a 13 - Número seqüencial do registro no lote - Cada registro possui dois segmentos
'S' + // Código do segmento do registro detalhe
' ' + // Uso exclusivo FEBRABAN/CNAB: Branco
ATipoOcorrencia + // 16 a 17 - Código de movimento
'3' + // 18 tipo impressão
// instrução no registro s 240
PadRight(copy(Instrucao5, 1, 40), 40, ' ')+
PadRight(copy(Instrucao6, 1, 40), 40, ' ')+
PadRight(copy(Instrucao7, 1, 40), 40, ' ')+
PadRight(copy(Instrucao8, 1, 40), 40, ' ')+
PadRight(copy(Instrucao9, 1, 40), 40, ' ')
+
Space(22); // 217-228 Conta corrente para debito
Inc(I);
Ainda estou fazendo a homologação destas mudanças e testando o registro do boleto para ver se vai sair as msg certinhas.
ACBrBancoBancoob.pas
ACBrBoleto.pas