5

Ich habe ein Gerät/eine Appliance, für die Sie keine Treiber installieren können. Ich möchte hinzufügen die Fähigkeit, Netzwerk/IPP/AirPrint-Drucker zu unterstützen, indem der Benutzer die IP-Adressen hinzufügen.Drucken mit IPP ohne Treiber (IPP-Client)

Da ich nicht durch Windows drucken (die würde das IPP verwenden), wie verwende ich IPP selbst? Gibt es einen C# -Client (oder eine Windows-Bibliothek), mit dem Sie mit IPP-Druckern mit dem IPP-Protokoll interagieren können?

+0

Ich bin auf der Suche in die gleiche Sache. Ich habe die Grundlage für den UPnP-Druck gefunden, aber ich habe bisher wenig Erfolg mit IPP/AirPrint. Bitte aktualisieren Sie Ihren Post, wenn Sie Fortschritte machen. – earthling

+0

Wird tun. Es gibt buchstäblich nichts im Internet. Apple ist super geschlossen über den tatsächlichen Netzwerkvertrag zwischen Drucker/Gerät. Ich kann nichts über IPP finden. Ich habe irgendwo gelesen, dass AirPrint eine Erweiterung von IPP ist. Wenn wir also IPP entwickeln können, dann sollten wir golden sein. –

+0

Lassen Sie mich wissen, wenn Sie auch etwas finden. –

Antwort

4

Es gibt einige IPP-Client-Implementierungen und IPP-Bibliotheken für verschiedene Programmiersprachen (java/php/python).

könnte eine praktische Lösung zu verwenden, die ipptool erhältlich bei http://cups.org/software.php

einem ipp-command-fileprintfile.ipp genannt erstellen:

{ 
OPERATION Print-Job 
GROUP operation-attributes-tag 
ATTR charset attributes-charset utf-8 
ATTR language attributes-natural-language en 
ATTR uri printer-uri $uri 
FILE $filename 
} 

Jetzt sollten Sie in der Lage sein, eine PDF-Datei mit diesen Optionen drucken:

ipptool -tv -f mydoc.pdf ipp://192.168.2.207/printers/color_A4 printfile.ipp

Stellen Sie sicher t Der Drucker (oder Druckserver) unterstützt das von Ihnen gesendete Dokumentformat. Ich nehme an, Sie sind vertraut mit der Ausführung eines externen Befehls in Ihrer Anwendung.

(Auch wenn die ipptool von CUPS zur Verfügung gestellt wird es funktioniert perfekt mit jedem IPP-Drucker. Überprüfen Sie RFC 3510 oder Ihre Drucker Dokumentation für den entsprechenden Drucker-uri-Schema)

+1

Der Drucker muss * das von Ihnen gesendete Dokumentformat nicht unterstützen. *! Es ist *** CUPS ***, das das Dokumentformat unterstützen muss. (Ihre Befehlszeile schlägt vor, dass Sie über einen CUPS-Server drucken, nicht direkt an einen IPP-Drucker. Warum sonst würden Sie "' ipp: // localhost/printers/laser' "als URI verwenden?). CUPS gibt die von Ihnen gesendete Datei automatisch ein und erstellt automatisch eine geeignete Dateiformat-Filterkette, um den vom Drucker gewünschten Jobfiletyp zu generieren. Sie können PDF mit 'ipptool' senden, und der Zieldrucker könnte ein PCL-Gerät sein. CUPS kümmert sich um die erforderlichen Übersetzungen .... –

+0

Pauls ursprüngliche Frage bezieht sich nicht auf CUPS. Es ist richtig, dass einige (bessere) Drucker oder Druckserver "application/octet-stream" als Standard-Dokumentformat verwenden und daher die empfangenen Daten automatisch eingeben müssen. Drucken ohne Treiber funktioniert am besten mit PDF und Druckern, die PDF akzeptieren (z. B. LaserJet M175nw oder imagePRESS C7010VP). Die Verwendung von CUPS kann nicht als Drucken ohne Treiber betrachtet werden, da CUPS selbst immer einen "Treiber" oder Filter benötigt. Leute, die Fragen über IPP oder "Driverless-Printing" stellen, neigen dazu, Middleware wie CUPS zu vermeiden. –

+0

* "Pauls ursprüngliche Frage bezieht sich nicht auf CUPS." * Richtig. - Ihre Antwort geht jedoch davon aus, dass der Job über CUPS läuft. Das IPP-URI-Schema, das Sie verwenden, stimmt nicht mit *** ANY *** IPP-Druckgerät-URI überein, das ich kenne (und ich kenne mehr als hundert). Aber es stimmt mit dem überein, was CUPS verwendet. –