Member 4532951 Ответов: 2

получите от принтера состояние датчика бумаги - c#


До сих пор я отправлял команды на принтер, fullCut, WriteBytes и т. д. Все они не имеют возвращаемого значения.

теперь мне нужно получить байтовый массив со статусом.


пример:
отправить полный разрез на принтер:
public override bool SendCommandFullCut()
        {
            return this.SendCommandToPrinter(new byte[] { 0x1C, 0xC0, 0x34 });
        }


это шестнадцатеричный код.

и статус проверки тот же самый. мне нужно проверить, есть ли бумага, или если это близко, чтобы закончить его.


Какая-нибудь помощь, пожалуйста?
Большое спасибо!

2 Ответов

Рейтинг:
7

Member 4532951

Я должен сделать это через последовательный порт.


Вы можете "виртуализировать" последовательный порт с помощью USB-порта:

- подключение с помощью адаптера к порту de USB
- установите драйверы te и выберите новый созданный виртуализированный последовательный порт (в моем случае COM3)
- удалите принтер в окне Панели управления принтера (выход из устройства)
- очень важно выйти из принтера, потому что в противном случае порт будет занят принтером и при попытке открыть порт будет выдана ошибка ("данное имя порта не начинается с COM/com или не разрешается в действительный последовательный порт")


попробовать это. это прекрасно работает.

http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx[^]


ПС. Спасибо всем!


Рейтинг:
1

gggustafson

Увидеть http://msdn.microsoft.com/en-us/library/system.printing.printqueuestatus(В=и 90).aspx или Гугле "C# для сделать бумаги о состоянии принтера"


Member 4532951

Это возможно, но не в моем случае, потому что я ищу ответ массива байтов. Я нашел его. В любом случае, большое спасибо!

Member 14790473

- Привет! У меня такая же проблема, как вы ее решаете? какую библиотеку вы используете для отправки команд на принтер?