У меня есть рабочий код, который отправляет необработанные данные на принтер, записывая временный файл, а затем используя File.Copy() для отправки его на принтер. File.Copy() поддерживает как локальные порты, например LPT1, так и общие принтеры, например \\FRONTCOUNTER\LabelPrinter.
Однако сейчас я пытаюсь заставить его работать с принтером, который находится непосредственно в сети: 192.168.2.100, и не могу понять формат, который нужно использовать.
Код: Выделить всё
File.Copy(filename, @"LPT1", true); // Works, on the FRONTCOUNTER computer
File.Copy(filename, @"\\FRONTCOUNTER\LabelPrinter", true); // Works from any computer
File.Copy(filename, @"\\192.168.2.100", true); // New printer, Does not work
Я знаю, что можно «Добавить принтер» с каждого компьютера, но я надеюсь избежать этого — вторая строка кода выше работает с любого компьютера в сети. сети автоматически, без необходимости настройки. Я также знаю, что можно P/Invoke диспетчер очереди печати Windows, и если это мой единственный вариант, я могу использовать его, но это гораздо больше накладных расходов на код, чем мне хотелось бы.
В идеале у кого-то должен быть либо способ заставить File.Copy() работать, либо аналогичный оператор C#, который будет принимать сетевой IP-адрес.>
Подробнее здесь:
https://stackoverflow.com/questions/187 ... rk-printer