У меня есть рабочий код, который отправляет необработанные данные на принтер, записывая временный файл, а затем используя 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-адрес.
установить его в Windows, как локальный принтер, а на интерфейсе TCP. Извините за неполное описание, я сделал это один раз и довольно долгое время. Вы можете спросить об этом на SuperUser. – ppeterka
@ ppeterka66 - Я надеюсь избежать необходимости настраивать каждый компьютер. Я добавлю это к вопросу. – Bobson
Вам не нужно указывать имя принтера после IP-адреса? Подобно '@" \\ 192.168.2.100 \ LabelPrinter ", если это ваш принтер для этикеток. –