I'm trying to cut the paper pragmatically by sending paper cut command to the printer (Epson TM U220 with USB port). I used the printer with Generic/Text Only Driver and Epson printer port which I found after installing Epson advanced printer driver. Printer command code is (GS V m), where m = 0,1,48 or 49 which I found on the device manual. I would like to know how to send these command to printer by StringWriter. I use Generic/Text Only pri开发者_运维知识库nter because it's much faster than using Epson driver.
I'm really new to C# windows and please anyone kindly provide me some lines of code to achieve this. I've been surfing the web for several days and still not found the answer yet. I think I need to send printer command as byte but I don't know how to do :(
Thank you very much Hans. Now I can send Paper cut command by using Microsoft RawPrinterHelper class. I've been seeking this solution for six days. Here is what I've done.
string GS = Convert.ToString((char)29);
string ESC = Convert.ToString((char)27);
string COMMAND = "";
COMMAND = ESC + "@";
COMMAND += GS + "V" + (char)1;
PrintDialog pd = new PrintDialog();
pd.PrinterSettings = new PrinterSettings();
if (DialogResult.OK == pd.ShowDialog(this))
{
RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, COMMAND);
}
For those printing with netcat
(really easy way to print something without installing any driver), to cut the paper:
echo -e "\x1B@\x1DV1" | nc printer.ip 9100
Same string like in the c# version, but mapped to hex: \x1B = ESC
and \x1D = GS
.
s = Replace(s, "<KESME>", Chr(27) + Chr(105), 1) ' Termal Printer
Chr() +chr()
精彩评论