extractEmitidoEm function
Implementation
String extractEmitidoEm(String fullText) {
final lines = fullText.split('\n');
final buffer = StringBuffer();
bool captura = false;
for (var i = 0; i < lines.length; i++) {
final line = lines[i].trim();
final lineNorm = normalizar(line);
if (!captura &&
(lineNorm.startsWith('emitido em') ||
lineNorm.startsWith('Emitido em'))) {
captura = true;
final parts = line.split(':');
if (parts.length > 1) buffer.write(parts[1].trim());
continue;
}
if (captura) {
final isNovoCampo =
lineNorm.startsWith('sexo') ||
lineNorm.contains('nascimento') ||
lineNorm.contains('filiacao') ||
lineNorm.contains('bilhete') ||
lineNorm.contains('residencia') ||
lineNorm.contains('estado civil') ||
lineNorm.contains('Válido até') ||
lineNorm.contains('Director') ||
lineNorm.startsWith('nome completo');
if (isNovoCampo) break;
buffer.write(' ');
buffer.write(line);
}
}
final result = buffer.toString().trim().replaceAll("Válido até", "");
if (result.length > 10) {
final valor = "${result.substring(0, 5)}/${result.substring(6)}";
return valor;
}
return result;
}