Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   imprimir acentos en impresora de tickets (https://www.clubdelphi.com/foros/showthread.php?t=3907)

Er_Manué 24-09-2003 14:24:52

imprimir acentos en impresora de tickets
 
hola!

Pos lo dicho, ¿Cómo puedo imprimir cadenas con acentos en una impresora de tickets? lo estoy probando en una SAMSUNG SRP-250AP, pero me gustaría que fuera general, ya que la aplicación que estoy desarrollando debe poder utilizar los distintos tipos de impresoras de tickets estandars disponibles.

muchas gracias

Er_Manué 24-09-2003 14:47:08

ya lo he solucionado. Os dejo la sólución para los que tengan el mismo problema que yo ;)

Código:

(****************************************)
(* Convertimos una cadena AnsiStr a OEM *)
(****************************************)
function StrToOem(const AnsiStr: string): string;
begin
  SetLength(Result, Length(AnsiStr));
  if Length(Result) > 0 then
    CharToOem(PChar(AnsiStr), PChar(Result));
end;
...

procedure imprimeTicket(numTicket : integer);
...
s := StrToOem(obtenDatosEmpresa(EMP_NOMB))+chr(13)+chr(10);
    WritePrinter(Handle, pchar(s), Length(S), N);
...

Simplemente tenemos que convertir la cadena a imprimir a OEM antes de imprimirla :D

Salu2

oscarbeilar 30-05-2007 12:21:25

sin complicaciones
 
hola xavales!

os veo bastante liados con los codigos y tal , yo como no soy tan experto como vosotros me limite a descargarme drivers nuevos y me lo ace solo :P mirar este link

http://feniximvico.com/categorias.ph...78&ididioma=ES

seguro k os ayuda mucho. adiosssssssssss

foxito 18-04-2012 22:03:19

Cita:

Empezado por Er_Manué (Mensaje 15596)
ya lo he solucionado. Os dejo la sólución para los que tengan el mismo problema que yo ;)

Código:

(****************************************)
(* Convertimos una cadena AnsiStr a OEM *)
(****************************************)
function StrToOem(const AnsiStr: string): string;
begin
  SetLength(Result, Length(AnsiStr));
  if Length(Result) > 0 then
    CharToOem(PChar(AnsiStr), PChar(Result));
end;
...

procedure imprimeTicket(numTicket : integer);
...
s := StrToOem(obtenDatosEmpresa(EMP_NOMB))+chr(13)+chr(10);
    WritePrinter(Handle, pchar(s), Length(S), N);
...

Simplemente tenemos que convertir la cadena a imprimir a OEM antes de imprimirla :D

Salu2


Excelente solución me sirvio demasiado... para mis impresiones de ticket. Gracias


La franja horaria es GMT +2. Ahora son las 11:10:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi