Enviando comandos específicos da impressora

Eu tenho um problema aqui, que estou tentando codificar dados de tarja magnética para uma impressora Fargo DTC400, nas especificações diz que preciso enviar os seguintes comandos de cadeia de caracteres do exemplo bloco de notas, wordpad etc etc:

~1%TRACK NUMBER ONE?
~2;123456789?
~3;123456789?

este exemplo codifica a sequência na faixa um e os números 123456789 nas faixas 2 e 3 .. isso funciona no Notepad.ex

EDITAR Código delphi atual que utilizo funciona em outra impressora:

procedure SendQuote(MyCommand : AnsiString);
var
  PTBlock       : TPassThrough;

begin
  PTBlock.nLen := Length(MyCommand);
  StrPCopy(@PTBlock.SData, MyCommand);
  Escape(printer.handle, PASSTHROUGH, 0, @PTBlock, nil);
end;

Quando estou tentando codificar essa string do meu próprio aplicativo, tenho problemas, parece que a impressora está ignorando totalmente meus comandos. Quando escolho imprimir em arquivo, posso ler os dados binários e ver minha string no arquivo impresso, quando Tento imprimir em arquivo a partir do exemplo notepad.exe, recebo apenas dados binários e não consigo encontrar minhas strings ...

Então, eu me pergunto o que o bloco de notas faz para enviar esse comando de seqüência de caracteres que eu não faç

spero que alguém possa esclarecer isso porque estou ansioso para implementar o suporte ao fargo no meu aplicativo por um longo período de temp

obrigad

Atualizar o código a seguir é antigo, mas funciona, no entanto, existe outra maneira de usar isso com o código Passthrough acim

var
  POutput: TextFile;
  k: Integer;
begin
  with TPrintDialog.Create(self) do
  try
    if Execute then
    begin
      AssignPrn(POutput);
      Rewrite(POutput);

      Writeln(POutput,'~1%TESTENCODER?');
      Writeln(POutput,'~2;123456789?');
      Writeln(POutput,'~2;987654321?');
      CloseFile(POutput);
    end;
  finally
    free;
  end
end;

questionAnswers(2)

yourAnswerToTheQuestion