49faa9786d
If printing from windows, then the printer name should be prefixed with smb. If printing from linux, then the printer name should be prefixed with cups. If printing directly, then the printer name should be prefixed with pdl.
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System;
|
|
using System.Net.Sockets;
|
|
|
|
namespace Tanshu.Accounts.Print
|
|
{
|
|
internal class PrinterSocket : PlatformPrinter
|
|
{
|
|
private string location;
|
|
// Cut Code for the printer Alt-29, Alt-86, Alt-49
|
|
internal PrinterSocket(string location)
|
|
{
|
|
this.location = location;
|
|
}
|
|
|
|
internal override bool Print(string documentName, string printingText)
|
|
{
|
|
try
|
|
{
|
|
Uri uri = new Uri(location);
|
|
TcpClient client = new TcpClient(uri.Host, uri.Port);
|
|
|
|
// Translate the passed message into ASCII and store it as a Byte array.
|
|
Byte[] data = System.Text.Encoding.ASCII.GetBytes(printingText);
|
|
|
|
// Get a client stream for reading and writing.
|
|
NetworkStream stream = client.GetStream();
|
|
|
|
// Send the message to the connected TcpServer.
|
|
stream.Write(data, 0, data.Length);
|
|
|
|
Console.WriteLine("Sent: {0}", printingText);
|
|
|
|
// Close everything.
|
|
stream.Close();
|
|
client.Close();
|
|
return true;
|
|
}
|
|
catch (ArgumentNullException e)
|
|
{
|
|
Console.WriteLine("ArgumentNullException: {0}", e);
|
|
return false;
|
|
}
|
|
catch (SocketException e)
|
|
{
|
|
Console.WriteLine("SocketException: {0}", e);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|