Fíjate que en el código fuente original viene esto, justo después de lo que mencionabas en el mensaje:
Código Delphi
[-]
begin
case FTyp of
bcCode128A, bcCodeEAN128A:
begin checksum := 103; startcode:= StartA; end;
bcCode128B, bcCodeEAN128B:
begin checksum := 104; startcode:= StartB; end;
bcCode128C, bcCodeEAN128C:
begin checksum := 105; startcode:= StartC; end;
else
raise Exception.CreateFmt('%s: wrong BarcodeType in Code_128', [self.ClassName]);
end;
result := startcode;
codeword_pos := 1;
case FTyp of
bcCodeEAN128A,
bcCodeEAN128B,
bcCodeEAN128C:
begin
result := result + tabelle_128[102].data;
Inc(checksum, 102*codeword_pos);
Inc(codeword_pos);
if FCheckSum then FText:=DoCheckSumming(FTEXT);
end;
end;
Es decir, que si el tipo de código de barras es especificamente "bcCodeEAN128C" (y no unicamente bcCode128C), parece que añade automáticamente el caracter de escape FNC1 que, según la
Wikipedia no es más que eso, un indicador de que el código contiene una funcionalidad especial.
Por tanto, si como dices en el mensaje ya lo estás usando de ese tipo, ya lo tendrías de forma automática.
Saludos