Invia file di testo direttamente alla stampante di rete

Ho un codice attualmente funzionante che invia dati grezzi a una stampante scrivendo un file temporaneo, quindi utilizzando File.Copy() per inviarlo alla stampante. File.Copy() supporta entrambe le porte locali, come LPT1 e stampanti condivise come \\FRONTCOUNTER\LabelPrinter .

Tuttavia, ora sto cercando di farlo funzionare con una stampante direttamente in rete: 192.168.2.100 , e non riesco a capire il formato da utilizzare.

 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 

So che è ansible “aggiungere una stampante” da ogni computer, ma spero di evitarlo – la seconda riga di codice sopra funziona automaticamente da qualsiasi computer della rete, senza alcuna configurazione richiesta. So anche che è ansible P / Richiamare lo spooler di stampa di Windows, e se questa è la mia unica opzione, potrei prenderlo, ma è molto più sovraccarico del codice di quanto mi piacerebbe avere.

Idealmente, qualcuno avrà un modo per far funzionare File.Copy() o un’affermazione C # simile che accetterà un IP di rete.

    È ansible utilizzare i socket e inviare i dati direttamente a tale indirizzo IP. Dovrebbe essere praticamente uguale a File.Copy . L’ho appena provato e ha funzionato.

    Ho appena inviato del testo ma qui è il codice che ho usato

     Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientSocket.NoDelay = true; IPAddress ip = IPAddress.Parse("192.168.192.6"); IPEndPoint ipep = new IPEndPoint(ip, 9100); clientSocket.Connect(ipep); byte[] fileBytes = File.ReadAllBytes("test.txt"); clientSocket.Send(fileBytes); clientSocket.Close();