C# отправляет обычный текст на принтер по умолчанию (принтер Zebra)

Как лучше всего отправить текст на принтер по умолчанию?

Принтер - это Zebra, а текст - это строка ZPL.

Существует множество примеров с размером шрифта, графикой, точками (x,y). Очень запутанно.

Но мне нужно отправить строку, и принтер выполняет свою работу.

2 ответа

Решение

Вы можете открыть порт напрямую, используя a p/invoke для OpenFile если вы подключены через LPT или COM-порты, но в противном случае вам нужно будет использовать API билета для печати, чтобы создать RAW отформатированная работа. См. http://support.microsoft.com/?kbid=322091 для вспомогательного класса, который вызывает соответствующие функции платформы, чтобы разрешить задания печати RAW из C#.

Ваш принтер Zebra подключен к сети?

Если так, это будет работать

// Printer IP Address and communication port
string ipAddress = "10.3.14.42";
int port = 9100;

// ZPL Command(s)
string ZPLString =
"^XA" +
"^FO50,50" +
"^A0N50,50" +
"^FDHello, World!^FS" +
"^XZ";

try
{
    // Open connection
    using (System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient())
    {
        client.Connect(ipAddress, port);

        // Write ZPL String to connection
        using (System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream()))
        {
            writer.Write(ZPLString);
            writer.Flush();
        }
    }
}
catch (Exception ex)
{
     // Catch Exception
}

Я также успешно использовал эту библиотеку для USB.

Другие вопросы по тегам