Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2024
pruz pruz is offline
Miembro
 
Registrado: sep 2003
Posts: 201
Poder: 22
pruz Va por buen camino
adjunto ademas el emulador TSPL, tambien en Visula Basic


Saludos
Archivos Adjuntos
Tipo de Archivo: rar Emulador_TSPL.rar (152,6 KB, 5 visitas)
Responder Con Cita
  #2  
Antiguo 03-10-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Según he leído lo que tienes que cambiar es la emulación en la impresora, vas a configuración y seleccionas esc/pos
Responder Con Cita
  #3  
Antiguo 03-10-2024
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 100
Poder: 21
CrazySoft Va por buen camino
Buen día, si tienes los códigos ESC/POS, podrías cambiar los valores o personalizar un nuevo tipo en este componente https://github.com/git-bee/TRAWPrinter


no encuentro con códigos ESC/POS de XPRINTER, si los encuentras podrías compartir
Responder Con Cita
  #4  
Antiguo 03-10-2024
pruz pruz is offline
Miembro
 
Registrado: sep 2003
Posts: 201
Poder: 22
pruz Va por buen camino
Casimiro:

Si busque donde cambiar en la configuracion de impresoras, y no tiene por donde cambiarlo. Solo me permite cambiarlo a un emulardor Zebra, de los cuales si tengo codigo de impresion, pero aun asi no funciono.

asi, que esa opcion la descarte, a no ser que YO este haciendo algo mal, que lo mas probable.

Saludos
Responder Con Cita
  #5  
Antiguo 03-10-2024
pruz pruz is offline
Miembro
 
Registrado: sep 2003
Posts: 201
Poder: 22
pruz Va por buen camino
CrazySoft:

si creo que los tengo, los comparto. Solo necesito un Texto y Codigo Barra


Saludos,
Imágenes Adjuntas
Tipo de Archivo: pdf ESC Windows SDK.pdf (317,1 KB, 9 visitas)
Responder Con Cita
  #6  
Antiguo 05-10-2024
delphi50jmb delphi50jmb is offline
Miembro
 
Registrado: jul 2007
Posts: 39
Poder: 0
delphi50jmb Va por buen camino
Wink

Hola Pruz.
Hace ya mucho tiempo tuve que programar una impresora de etiqutas XPrinter, para una cafeteria tipo Starbucks, que imprimia el numero de atencion y el nombre del cliente en una etiqueta para luego pegarla en el vaso.

Aqui va el codigo que utilizaba.

Código Delphi [-]
procedure ImprimeEtiqueta(sPuerto, sNumClie, sDescrip, sComentario: String);
begin
   writeln( sPuerto, 'CLS'); // Limpia el buffers de la impresora
   //writeln( sPuerto, 'BACKUP 220');    // Reversa la etiqueta 40 puntos. Trabaja junto con Backfeed
   //writeln( sPuerto, 'BACKFEED 220');   // Reversa la etiqueta 40 puntos
   writeln( sPuerto, 'DIRECTION 1');
   writeln( sPuerto, 'REFERENCE 1,1');  //posicion inicial
   //writeln( sPuerto, 'SHIFT 140');         // mueve la posision de la etiqueta
   //writeln( sPuerto, 'OFFSET 12.7 mm');
   //writeln( sPuerto, 'GAP 17.62 mm, 17.54 mm');
   writeln( sPuerto, 'TEXT 20,50,"3",0,1,1,' + '"' + 'Numero: ' + sNumClie + '"');
   writeln( sPuerto, 'TEXT 20,80,"2",0,1,1,' + '"' + sDescrip + '"');
   writeln( sPuerto, 'TEXT 20,110,"2",0,1,1,' + '"' + sComentario + '"');
   writeln( sPuerto, 'TEXT 20,200,"1",0,1,1,' + '"' + DateToStr(Date) + space(2) + TimeToStr(Time) + '"');
   writeln( sPuerto, 'PRINT 1');
   //writeln( sPuerto, 'FEED 300');   // Avanza la etiqueta 260 puntos
   //writeln( sPuerto, 'CUT');     // Corta la etiqueta
end;


Y, este otro codigo, lo utilice en algun momento para imprimir codigos de barra en en una impresora de etiqutas Zebra.

Código Delphi [-]
         ImpCodBarra( Tabla.FieldByName('Codigo').AsString,
                      Tabla.FieldByName('Talla').AsString,
                      Tabla.FieldByName('Color').AsString,
                      Tabla.FieldByName('Precio').AsString );

*******************************************************

procedure ImpCodBarra( sP1, sP2, sP3, Sp4: String );
var
   a         : Integer;
   iCantidad : Integer;
   iCantAux  : Extended;

begin
   AssignFile(MyFile, iPtoImpBar );
   reset( MyFile );
   rewrite(MyFile);

   writeln( MyFile, 'N');
   writeln( MyFile, 'S6');

   iCantidad := StrToInt(sParamB);

   for a := 1 to iCantidad do
   begin
      //
      Etiqutas3x1(sP1, sP2, sP3, Sp4 );
      //
      writeln( MyFile,  'P1' );  // ---
      writeln( MyFile,  'N');    //    +-- Controles internos para la impresora
      writeln( MyFile,  'O');    // ---

   end;
end;


procedure Etiqutas3x1(sCodigo, sTalla, sColor, sPrecio: String );
begin
     //                1)--- Pos. Columna
     //                |    2)--- Pos. Filas
     //                |    |  3)--- Rotacion.0=No rot.
     //                |    |  | 4)--- Font. 1..5
     //                |    |  | | 5)--- Ancho Horizontal
     //                |    |  | | | 6)--- Altura Vertical
     //                |    |  | | | | 7)--- N=Normal, R=Reversa
     //                |    |  | | | | |
     //                |    |  | | | | |    8)--- Data
     //                |    |  | | | | |    |
     //                |    |  | | | | |    |
     // Etiqueta 1     |    |  | | | | |    |
   writeln( MyFile,  'A000,020,0,2,1,1,N,"' + copy(sCodigo,1,20) + '"' ); // Codigo Barra
   writeln( MyFile,  'A000,040,0,2,1,1,N,"Color ' + sColor + '"' );
   writeln( MyFile,  'A000,060,0,2,1,1,N,"Talla ' + sTalla + '"' );

   writeln( MyFile,  'A000,080,0,2,1,1,N,"$ ' + Picture(sPrecio) + '.-"' );  // Precio

   // Etiqueta 2
   writeln( MyFile,  'A200,020,0,2,1,1,N,"' + copy(sCodigo,1,20) + '"' );
   writeln( MyFile,  'A200,040,0,2,1,1,N,"Color ' + sColor + '"' );
   writeln( MyFile,  'A200,060,0,2,1,1,N,"Talla ' + sTalla + '"' );

   writeln( MyFile,  'A200,080,0,2,1,1,N,"$ ' + Picture(sPrecio) + '.-"' );

   // Etiqueta 3
   writeln( MyFile,  'A470,020,0,2,1,1,N,"' + copy(sCodigo,1,20) + '"' );
   writeln( MyFile,  'A470,040,0,2,1,1,N,"Color ' + sColor + '"' );
   writeln( MyFile,  'A470,060,0,2,1,1,N,"Talla ' + sTalla + '"' );

   writeln( MyFile,  'A470,080,0,2,1,1,N,"$ ' + Picture(sPrecio) + '.-"' );
end;

Espero, te sirvan de ejemplo.

Saludos.

Jose Miguel B.
Responder Con Cita
  #7  
Antiguo 06-10-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 280
Poder: 2
navbuoy Va por buen camino
le pregunte a Chat GPT y me dice:

Para imprimir códigos de barra y texto en una impresora XPrinter modelo XP-235B usando Delphi 7, generalmente se debe enviar comandos ESC/POS o similares directamente a la impresora. A continuación te doy un ejemplo básico de cómo hacerlo utilizando una conexión con el puerto de la impresora (por ejemplo, a través de un puerto COM o LPT):

CODIGO DE EJEMPLO:

Código:
uses
  Printers, Windows;

procedure TForm1.ImprimirCodigoDeBarras;
var
  hPrinter: THandle;
  DocInfo: DOC_INFO_1;
  BytesWritten: DWORD;
  RawData: AnsiString;
begin
  // Abrir la impresora por su nombre
  if OpenPrinter('XPrinter XP-235B', hPrinter, nil) then
  begin
    // Información del documento
    DocInfo.pDocName := 'Impresión de Código de Barras';
    DocInfo.pOutputFile := nil;
    DocInfo.pDatatype := 'RAW';  // RAW para enviar datos sin formato

    // Iniciar el trabajo de impresión
    if StartDocPrinter(hPrinter, 1, @DocInfo) > 0 then
    begin
      if StartPagePrinter(hPrinter) then
      begin
        // Aquí colocamos el código ESC/POS para imprimir código de barras y texto
        // Ejemplo de código para un código de barras tipo CODE128
        RawData := #29 + 'k' + #4 + '123456789012';  // Código de barras CODE128
        RawData := RawData + #10 + 'Texto debajo del código de barras' + #13#10; // Texto
        
        // Enviar datos a la impresora
        WritePrinter(hPrinter, PAnsiChar(RawData), Length(RawData), BytesWritten);
        EndPagePrinter(hPrinter);
      end;
      EndDocPrinter(hPrinter);
    end;
    ClosePrinter(hPrinter);
  end
  else
    ShowMessage('Error al abrir la impresora');
end;
Explicación:
Abrir la impresora: Se usa OpenPrinter con el nombre de la impresora configurada en Windows.
Iniciar un trabajo de impresión: Se llama a StartDocPrinter para iniciar la impresión.
Enviar comandos ESC/POS: Los comandos específicos de la impresora se envían como datos RAW. En este caso, se está enviando un comando para imprimir un código de barras CODE128.
Cerrar la impresora: Se finaliza el trabajo de impresión con EndDocPrinter.

Notas:
Asegúrate de que el nombre de la impresora coincide con el que está configurado en tu sistema.
Los comandos pueden variar según el modelo de impresora. Consulta el manual de la impresora para obtener detalles sobre los comandos específicos de impresión de códigos de barra.
Este código debería funcionar si la impresora utiliza comandos ESC/POS o similares.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
seleccion de impresora y letra de la impresora emeceuy Impresión 6 13-08-2017 14:11:05
Etiquetas en A4 Besto Impresión 3 29-01-2010 14:39:46
Reportman con impresora de etiquetas David Jiménez Impresión 5 18-11-2009 18:09:50
Impresora de etiquetas. Necesito recomendación para comprar una Wonni Impresión 2 01-03-2007 22:44:08
Envío de comandos a impresora de etiquetas davidgaldo Impresión 0 16-11-2005 08:14:20


La franja horaria es GMT +2. Ahora son las 16:27:44.


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