Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2015
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 197
Poder: 22
darkerbyte Va por buen camino
Lightbulb Solución

Gracias Newtron y Juanelo.

Esa fue la solución. Explico por si alguien también no tiene experiencia con este tipo de impresoras.

1. Configurar el tamaño del papel en las propiedades de la impresora
2. Con el Zebra Designer diseñar la etiqueta (utilizar campos de texto fijos y códigos de barras fijos, no usar variables)
3. Imprimir en la impresora algunas etiquetas consecutivas para verificar que el tamaño del papel esta correctamente configurado
4. Una vez que la etiqueta quedó a nuestro gusto le damos en imprimir pero activamos la opción "imprimir a archivo" y le damos en imprimir
5. Nos guarda un archivo con la extensión *.prn ese archivo lo abrimos con algun editor de texto y borramos la primera linea.
hasta encontrar ^XA (en lenguaje ZPL con esta instrucción se marca el inicio de un comando)
6. Dale una leida al manual que amablemente dejaron los compañeros para entender la sintaxis del ZPL
7. Busca los campos que vas a reemplazar y te haces una rutina en delphi que esté reemplazando esa información
con lo que vas a mandar a imprimir
8. Utiliza algun metodo para mandar a imprimir comandos a una impresora en RAW, yo uso el que sigue:

Código Delphi [-]
function TLabels.strToRaw(Comando : AnsiString; PrinterName : string): Boolean;
var
   PrinterHandle: THandle;
   N: DWORD;
   DocInfo1: TDocInfo1;
begin
  Result:= FALSE;
  if not OpenPrinter(PChar(PrinterName), PrinterHandle, nil) then
  begin
    ShowMessage('Error de impresora: ' + IntToStr(GetLastError));
    Exit;
  end
  else Try
      with DocInfo1 do
      begin
        pDocName := pChar('Imprimiendo etiqueta');
        pOutputFile:= pChar(#0);
        pDataType := pChar('RAW');
      end;
      if StartDocPrinter(PrinterHandle, 1, @DocInfo1) <> 0 then
      begin
          try
            if StartPagePrinter(PrinterHandle) then
            begin
              try
                Result:=( WritePrinter(PrinterHandle,pChar(comando),Length(comando), N)  );
                if not Result then ShowMessage('Error de impresora: ' + IntToStr(GetLastError));
              finally
                EndPagePrinter(PrinterHandle);
              end;
            end;
          finally
            EndDocPrinter(PrinterHandle);
          end;
      end;
  finally
    ClosePrinter(PrinterHandle);
  end;
end;

Ya nada mas para mandar a imprimir mandas algo como esto:

Código Delphi [-]
var
  sPRN, cadena: string;
  imprimio : Boolean;
  i : integer;
begin
    sPRN:= cbox_impresoras.Text;  // nombre de la impresora 
    cadena:='';
    for i := 0 to memo_raw.Lines.Count-1 do
        cadena := cadena+memo_raw.Lines.Strings[i]+#13+#10;
    imprimio:= Write_RAW_StringToPrinter( AnsiString(cadena), sPRN);
End;

Ya nada mas ten cuidado con los caracteres especiales, hay que reemplazarlos antes de mandar a imprimir:
\AD = ¡ (Admiración inicial)
\A0 = á
\82 = é
\A1 = í
\A2 = ó
\A3 = ú
\A4 = ñ
\A5 = Ñ
\B5 = Á
\90 = É
\D6 = Í
\E3 = Ó
\E9 = Ú
\91 = ü
\9A = Ü
\F8 = °
\1F = \

Simboloes sin problemas:
$ # " ' % ; . , ? ! / * - + [ ] {} & < > ( ) _
Responder Con Cita
  #2  
Antiguo 15-09-2015
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Estupendo.

Me alegro de que hayas resuelto el problema.

Saludos.
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 29-10-2015
Malparo Malparo is offline
Registrado
 
Registrado: jul 2008
Posts: 7
Poder: 0
Malparo Va por buen camino
Hola Darkerbite,

Estoy con el mismo dilema de impresion y no hemos losgrado imprimir con los codigo EPL...
He estado leyendo lo que mensionas en este foro, pero en la rutina strToRaw, defines un tipo de datos DocInfo1: TDocInfo1, que no entiendo a que se refiere....

No soy muy perito en este tema aun, podrias darme una manito por favor....
Responder Con Cita
  #4  
Antiguo 21-11-2015
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 197
Poder: 22
darkerbyte Va por buen camino
Ausencia

Cita:
Empezado por Malparo Ver Mensaje
Hola Darkerbite,

Estoy con el mismo dilema de impresion y no hemos losgrado imprimir con los codigo EPL...
He estado leyendo lo que mensionas en este foro, pero en la rutina strToRaw, defines un tipo de datos DocInfo1: TDocInfo1, que no entiendo a que se refiere....

No soy muy perito en este tema aun, podrias darme una manito por favor....
Hola, perdón por la tardanza no había entrado al foro ultimamente.
Si aun necesitas ayuda estoy a tus órdenes. En el software que estoy desarrollando ya puse compatibilidad con lenguaje ZPL y EPL basicamente es lo mismo
solo que las sintaxis son diferentes.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Imprimir codigo de barras en Zebra darkerbyte Impresión 7 17-01-2017 19:09:49
Imprimir en Zebra TLP 2844 trex2000 Impresión 6 04-04-2013 05:41:44
Imprimir con Zebra S4M usb emanuelbarrios Impresión 1 03-08-2012 09:51:47
Imprimir en Zebra teletranx Impresión 9 05-06-2012 09:25:03
Imprimir Factura Con Fastreport macro32 Conexión con bases de datos 2 15-04-2008 00:39:03


La franja horaria es GMT +2. Ahora son las 08:14:15.


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