Как отправить команду вырезания страницы на принтер Epson
Я пытаюсь разрезать бумагу прагматично, отправив команду вырезания бумаги на принтер (Epson TM U220 с USB-портом).
Я использовал принтер с драйвером Generic/Text Only и портом принтера Epson, который я нашел после установки
Расширенный драйвер принтера Epson.
Код команды принтера (GS V m), где m = 0,1,48 или 49, который я нашел в руководстве по устройству.
Я хотел бы знать, как отправить эту команду на принтер с помощью StringWriter.
Я использую универсальный/текстовый принтер, потому что он намного быстрее, чем при использовании драйвера Epson.
Я действительно новичок в С# windows и, пожалуйста, любезно предоставите мне несколько строк кода для этого. Я занимаюсь серфингом в Интернете в течение нескольких дней и до сих пор не нашел ответа. Я думаю, мне нужно отправить команду принтера в качестве байта, но я не знаю, как это сделать: (
Ответы
Ответ 1
Большое спасибо, Ханс. Теперь я могу отправить команду Paper cut, используя класс Microsoft RawPrinterHelper. Я искал это решение в течение шести дней. Вот что я сделал.
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);
}
Ответ 2
Для печати с netcat
(действительно простой способ распечатать что-либо без установки какого-либо драйвера), чтобы вырезать бумагу:
echo -e "\[email protected]\x1DV1" | nc printer.ip 9100
Такая же строка, как в версии С#, но отображается в hex: \x1B = ESC
и \x1D = GS
.
Ответ 3
s = Replace(s, "<KESME>", Chr(27) + Chr(105), 1) ' Termal Printer
Chr() +chr()