viernes, 6 de diciembre de 2013

Imprimir a impresora de etiquetas zebra en c# asp.net


 using System.IO;
using System.Runtime.InteropServices;
using Microsoft.Win32.SafeHandles;

 public const short FILE_ATTRIBUTE_NORMAL = 0x80;
        public const short INVALID_HANDLE_VALUE = -1;
        public const uint GENERIC_READ = 0x80000000;
        public const uint GENERIC_WRITE = 0x40000000;
        public const uint CREATE_NEW = 1;
        public const uint CREATE_ALWAYS = 2;
        public const uint OPEN_EXISTING = 3;
        private SafeFileHandle handleValue = null;

       
        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        static extern SafeFileHandle CreateFile(string lpFileName, uint dwDesiredAccess,
          uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition,
          uint dwFlagsAndAttributes, IntPtr hTemplateFile);

        private StreamWriter GetStreamWriter (string  port )
    {
        handleValue = CreateFile(port, GENERIC_WRITE, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
        FileStream stream = new FileStream(handleValue, FileAccess.Write);
        StreamWriter writer = new StreamWriter(stream);
        return writer;
    }
 
 public void imprimeEtiqueta (Cls_EtiquetasTrazabilidad etiqueta,string lpt,int  band)
 {
     StreamWriter lpt1 = GetStreamWriter(lpt);

       string  wcadena =string.Empty ;
        string  salta  =string.Empty ;
        int wtraslada  = 0;
        string wincompleto  =string.Empty ;

       if (band==0)
       {
        lpt1.WriteLine("");
        lpt1.WriteLine("N");
        wtraslada = 0;
       }
      if (band==1)
       {
        lpt1.WriteLine("");
        wtraslada = 440;
       }


      wcadena = "B" + String.Format("###",12 + wtraslada) + ",39,0,1,2,0,69,N," + (char)34 + etiqueta.IdNloteHex + (char)34;
      lpt1.WriteLine(wcadena);
    
      wcadena = "A" + String.Format("###", 12 + wtraslada) + ",13,0,4,2,1,N," + (char)34 + etiqueta.IdNloteHex + (char)34;
      lpt1.WriteLine(wcadena);

      wcadena = "A" + String.Format("###", 12 + wtraslada) + ",121,0,2,1,1,N," + (char)34 + etiqueta.Codpro + (char)34;
      lpt1.WriteLine(wcadena);

      if (band == 1)
          lpt1.WriteLine("P1");

      lpt1.Close();
 }

2 comentarios:

MODELO BASADO EN PROTOTIPOS dijo...

Hola, tu me podrias colaborar no se como hacerlo y para la empresa donde trabajo debo de imprimir etiquetas tu me colaborarias explicandome como se usa o un ejemplo.

Muchas Gracias

Johana Torres
johanap_torres@hotmail.com

Unknown dijo...

Hola, Sera que tengas una version para ASP.NET (VB)? hay datos que no los puedo traducir