Hola IVAND, y saludos a todos.
A mi tu código tampoco me funciona.
Lo que yo estoy utilizando es el componente del amigo Juanelo pero cambiando esta sentencia
Código Delphi
[-]
if not WritePrinter(hPrinter, PChar(Text), Length(Text), WrittenChars) then begin
por esta otra
Código Delphi
[-]
if not WritePrinter(hPrinter, PChar(Utf8Encode(AnsiString(Text))),Length(Text), WrittenChars) then begin
en la función
Código Delphi
[-]function TRawPrint.WriteString(Text: String): Boolean;
Este cambio lo he realizado a instancias de los comentarios realizados por Newtron donde adjuntaba un ejemplo.
También comentar que el texto que yo imprimo lo cargo desde un fichero de texto y que este fichero que cargo está creado directamente con el programa ZebraDesigner.
Adjunto uno de estos ficheros por si te sirve de ayuda, al menos, para comparar su formato con o que tu envías.
Saludos