Ethernet POS Documentation - C# sample of TCP/IP printing


This code requests from the command line an IP address or an host name, opens a TCP connexion on the corresponding machine, and write some text over the connection. Printed text is formatted using Epson® ESC/POS commands.

To test this code, create a C# command line application project under Microsoft Visual Studio, then replace the main file contents by this code.

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(
            s.Connect(host, 9100);

        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");

            // 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();
            try {
                byte[] data = GetPrintData(host);
                TcpPrint(host, data);

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

Download tcpip.cs