Ув. госода програмисты, как напечатать украинские буквы "Іі" на матричном принтере.
одна из причин - отсутствие пошивки DOS866 в матричном принтере (или старая, так в EPSON - 300 украинская Її отсутствовала, а в EPSON - 300+ - прописана - ASCI код 244)
P.S. - при условии, что перекодировка с WIN в DOS корректная
Дело в том что в 866 кодовой странице нет украинской Ii, но есть английская,
соответственно в репорте только RussianCharset. Поэтому преобразование происходит некоректно.
function StrToOem(const AnsiStr: String): String;
var i:integer;
s:string;
begin
s:=AnsiStr;
i:=pos('і',s); // укр буква i
while i<>0 do
begin
s:='i'; // англ буква i
i:=pos('i',s); // укр буква i
end;
i:=pos('I',s); // укр буква I
while i<>0 do
begin
s:='I'; // англ буква I
i:=pos('I',s); // укр буква I
end;
SetLength(Result, Length(s));
if Length(Result) > 0 then
CharToOemBuff(PChar(s), PChar(Result), Length(Result));
end;
Комментарии
P.S. - при условии, что перекодировка с WIN в DOS корректная
соответственно в репорте только RussianCharset. Поэтому преобразование происходит некоректно.