Ver Mensaje Individual
  #9  
Antiguo 17-09-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Gracias, Agustín, por tu interés.

No me había preocupado por el tema, porque no me daba error en tiempo de ejecución. Y porque este proyecto era sólo para conectar con la impresora por Bluetooth.
Pero ahora he intentado resolverlo. No ha funcionado corta/pega.
Pero he visto que ¡SOY UN ANIMAL...! Tenía declarada la variable "Impresora : TBluetoothDevice;" ¡por encima de la directiva private!.

Bueno, a lo que vamos.
¡He conseguido escribir en la impresora las Ñs y los acentos.!.
Resulta que los códigos de Escape para manipular la impresora deben ir codificados en ASCII, el juego de caracteres debe ser WPC1252(Latin-1) y el texto enviado a la impresora debe ir codificado en Unicode. Al menos en mi impresora...

Dejo las modificaciones en el código del proyecto por si interesan a alguien.
Código Delphi [-]
if FSocket.Connected
     then Begin
          Texto := #27 + #64;
          BytesEnviados := TEncoding.ASCII.GetBytes(Texto);
          FSocket.SendData(BytesEnviados);
          Texto := #27 + 't' + #16; // Selecciona juego de caracteres WPC1252(Latin-1)
          BytesEnviados := TEncoding.ASCII.GetBytes(Texto);
          FSocket.SendData(BytesEnviados);
          Texto := #27 + '!' +#0; //  Tamaño normal de la fuente
          BytesEnviados := TEncoding.ASCII.GetBytes(Texto);
          FSocket.SendData(BytesEnviados);
          Texto := #27 + 'Hola mundo con ñ y Ñ,  hola España CAÑÍ' + #10; // Envia el escrito y alimenta una línea
          // Texto := #27 +Edit1.Text + #10; // Envia el escrito y alimenta una línea
          BytesEnviados := TEncoding.Unicode.GetBytes(Texto);
          FSocket.SendData(BytesEnviados);

          Sleep(200);
          End;

Saludos a todos.
Responder Con Cita