Documentation Ethernet POS - Exemple C# d'impression TCP/IP

Notes

Ce code demande en ligne de commande une adresse IP ou un nom d'hôte, ouvre une connexion TCP sur la machine correspondant à la valeur saisie, et y envoie un texte de test. Le texte imprimé est mis en forme (alignement, gras) via des commandes Epson® ESC/POS.

Pour tester ce code, créez un projet d'application en ligne de commande C# depuis Microsoft Visual Studio, et replacez le contenu du fichier principal par celui-ci.

Code using System;
using System.Text;
using System.Net.Sockets;

namespace EthPosTcpSample
{
    class Program
    {
        const char ESC = '\x1b';
        const char FS = '\x1c';
        const char GS = '\x1d';

        static void TcpPrint(string host, byte[] data)
        {
            Socket s = new Socket(
                AddressFamily.InterNetwork,
                SocketType.Stream,
                ProtocolType.Tcp);
            s.Connect(host, 9100);
            s.Send(data);
            s.Disconnect(false);
        }

        static byte[] GetPrintData(string host)
        {
            StringBuilder sb = new StringBuilder();

            // Initialize printer
            sb.Append(ESC + "@");

            // Align center
            sb.Append(ESC + "a" + (char)1);

            // Use bold
            sb.Append(ESC + "E" + (char)1);

            // Add header text
            sb.Append("Active+ Software\n");
            sb.Append("https://www.activeplus.com\n\n");

            // Revert to align left and normal weight
            sb.Append(ESC + "a" + (char)0);
            sb.Append(ESC + "E" + (char)0);

            // Format some text
            sb.Append("This sample text is sent from a C# program\n");
            sb.AppendFormat("to Ethernet POS machine '{0}'.\n\n", host);
            sb.Append("Regards,\nThe Active+ Software team\n");

            // Feed and cut paper
            sb.Append(GS + "V\x41\0");

            return Encoding.Default.GetBytes(sb.ToString());
        }

        static void Main(string[] args)
        {
            Console.Write("Please enter a hostname or IP: ");
            string host = Console.ReadLine();
            Console.WriteLine();
            
            try {
                byte[] data = GetPrintData(host);
                TcpPrint(host, data);

                Console.WriteLine(
                    "{0} bytes successfully sent to Ethernet POS machine '{1}'",
                    data.Length,
                    host);
            }
            catch (Exception e) {
                Console.WriteLine("Error: " + e.Message);
            }
        }
    }
}


Télécharger tcpip.cs