Pregunta

Estoy trabajando en una .NET WinForms aplicación que necesita para imprimir una etiqueta de envío por ups.Como parte de la FedEx api, puedo conseguir la raw de datos en la etiqueta de la impresora.

Yo no sé cómo enviar datos a la impresora a través de .NETO (estoy usando C#).Para ser claros, los datos ya están pre formateado en ZPL (impresora Zebra lenguaje) sólo tengo que enviarlo a la impresora sin necesidad de windows ensuciar para arriba.

¿Fue útil?

Solución

C# no admite la impresión de archivos raw, tendrás que utilizar el win32 cola, como se detalla en este artículo de KB Cómo enviar datos en bruto a una impresora mediante Visual C# .NET.

Espero que esto ayude.

-Adam

Otros consejos

Creo que sólo desea enviar el ZPL (trabajo a continuación) directamente a su impresora.

private void SendPrintJob(string job)
{
    TcpClient client = null;
    NetworkStream ns = null;
    byte[] bytes;
    int bytesRead;

    IPEndPoint remoteIP;
    Socket sock = null;

    try
    {
        remoteIP = new IPEndPoint( IPAddress.Parse(hostName), portNum );
        sock = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream,
            ProtocolType.Tcp);
        sock.Connect(remoteIP);


        ns = new NetworkStream(sock);

        if (ns.DataAvailable)
        {
            bytes = new byte[client.ReceiveBufferSize];
            bytesRead = ns.Read(bytes, 0, bytes.Length);
        }

        byte[] toSend = Encoding.ASCII.GetBytes(job);
        ns.Write(toSend, 0, toSend.Length);

        if (ns.DataAvailable)
        {
            bytes = new byte[client.ReceiveBufferSize];
            bytesRead = ns.Read(bytes, 0, bytes.Length);
        }
    }
    finally
    {           
        if( ns != null )            
            ns.Close();

        if( sock != null && sock.Connected )
            sock.Close();

        if (client != null)
            client.Close();
    }
}

Un poco tarde, pero usted puede utilizar esta CodePlex Proyecto para una fácil impresión ZPL http://sharpzebra.codeplex.com/

Impresoras Zebra no utilizar una cola de impresión, no es raw de impresión.Es un marcado llamado ZPL.Es el texto base, no binario.

He estado trabajando con una impresora y ZPL por un tiempo ahora, pero con un Rubí de la aplicación.El envío de la ZPL a la impresora a través de socket funciona bien.

Para comprobar que funciona, a menudo me telnet a la impresora y el tipo de ^XA^PH^XZ para alimentar a una sola etiqueta.Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top