Отправка необработанных данных на принтер метки FedEx


4

Я работаю над приложением .NET WinForms, которому необходимо распечатать ярлык доставки FEDEX. Как часть FedEx api, я могу получить данные raw label для принтера.

Я просто не знаю, как отправить эти данные на принтер через .NET (я использую C#). Чтобы быть ясным, данные уже предварительно отформатированы в ZPL (язык принтера Zebra). Мне просто нужно отправить его на принтер без окон, выкидывающих его.

10

C# не поддерживает сырую печать, вам придется использовать диспетчер очереди win32, как описано в этой статье базы знаний How to send raw data to a printer by using Visual C# .NET.

Надеюсь, это поможет.

-Adam


1

Я думаю, что вы просто хотите отправить ZPL (задание ниже) непосредственно к принтеру.

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(); 
    } 
} 

0

Я работал с принтером и ZPL некоторое время теперь, но с приложением Ruby. Отправка ZPL на принтер через сокет работает нормально.

Чтобы проверить, что он работает, я часто подключаюсь к принтеру и набираю ^XA^PH^XZ для подачи одной метки. Надеюсь, это поможет.


0

Немного поздно, но вы можете использовать этот проект CodePlex для легкой БФЛ печати http://sharpzebra.codeplex.com/


0

Zebra принтеры не используют шпульницу, это не сырье печати. Это разметка под названием ZPL. Это текстовое, а не двоичное.