Raspberry Pi als "echten" USB drucker

  • Guten Tag zusammen,

    ich würde gerne meinen Raspberry Pi als Drucker nutzen. Ich habe viele Infos dazu finden können, wie man einen Raspberry Pi mittels cups und einen USB-Drucker zu einen Netzwerkdrucker baut.

    Ich hätte das gerne anders. Ich möchte gerne meinen Raspberry Pi als echten USB Drucker. D.h. ich stöpsel den Raspberry Pi mittels USB (zu not auch über die serielle oder parallele Schnittelle) an nen Rechner. Der Rechner erkennt den dann Drucker.

    Der Raspberry Pi druckt alles dann als PDF. (Später soll dann was mit den PDFs passieren.)


    Hat jemand Infos zu, wie man das macht?

  • Hallo Codemaker !


    Irgendwas passt bei Deinem Projekt nicht.

    Ein PDF File ist kein druckbares File, das einfach an den Drucker übermittelt wird, das ginge höchstens bei einem Postscript File, wenn der Drucker Postscript versteht.


    Damit ein Drucker einen Druckauftrag ausführen kann, braucht er nicht nur ein vom Drucker ausführbares (lesbares) Datenfile mit allen Druckersteuerzeuchen, sondern auch zahlreiche Informationen, wie und wieoft der Druck ausgeführt werden soll. Das wird üblicherweise nach dem Druckbefehl und den zum Drucker passendem Treiber generiert.


    Cups (Common Unix Printing System) verwendet immer einen Cups Server, an den alle Druckaufträge mit den zu druckenden Daten erteilt werden. Primär stellt CUPS alle erhaltenen Druckaufträge in eine Druckerwarteschlange und schickt die Daten an den (einen) Drucker, wenn dieser online ist und einen Auftrag entgegennimmt.


    Zuerst brauchst Du einen CUPS Server am Pi, auch wenn nur local ein Drucker angeschlossen ist und die Druckaufträge local erteilt werden. Ein für den anheschlossenen USB Drucker passender Druckertreiber muss auch installiert sein.


    Wenn Du ohne Netzwerk mit dem runtergefahrenen Pi, ohne angestecktem USB Drucker zu einem Rechner gehst, den Pi dort startest und mit dem Rechner, wie auch immer, vebindest, kannst Du vom Rechner aus nur mit dem Druckkommando an den Pi dessen Cups Server veranlassen einen Druckauftrag in die Druckerwarteschlange zu stellen. Dann muss der Pi wieder ordnunhsgemäss runtergefahren werden und mit dem USB Drucker hochgefahren werden. Dann werden die Druckaufträge aus der Druckerwarteschlange der Reihe nach ausgedruckt.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Es gibt genügend Drucker die PDF (neben PS, PCL etc.) direkt verarbeiten können.

    "Mit dem Alter kommt die Weisheit. Bei manchem nur das Alter."

  • Ich glaube da versteht jemand das Projekt falsch. Du möchtest, dass der angeschlossene RasPi jeglichen Druckauftrag von einem beliebigen Rechner annimmt und grundsätzlich in PDF umwandelt, oder? Das ist nicht ganz einfach, da du dazu wahrscheinlich Lizenzen benötigst und zudem eine "Firmware" schreiben müsstest, die den Druckauftrag entgegen nimmt.

    Ein Denkanstoß wäre, den RasPi als Druckserver zu nutzen, dann mit Cupszu drucken und anstelle des angeschlossenen Druckers einen PDF-Drucker wie cups-pdf oder gtkprint zu benutzen. Das wäre dann nicht über USB aber über Netzwerk.

  • Hat jemand Infos zu, wie man das macht?

    frage doch mal echte "codemaker" (*scnr*) ist ja nur SW, wobei echte PDF zum Drucker übersetzt werden müssen und da als Bitmap oder (Druck)Pixel für (Druck)Pixel oder als Postscript, je nach Drucker.


    Solange du nicht sagst welcher Drucker könnte es ja ein Nadeldrucker, Laser oder Tintenpisser sein.


    Du siehst evtl. das deine Aufgabenstellung unscharf ist, woher soll der arme PI wissen welcher Drucker dran hängt?

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ich glaube ich hab meine Idee nicht gut erklärt.

    Es geht bei mir nicht Primär um PDFs drucken. Aber wir haben Rechner, auf denen Ich nichts machen darf. (Also nichts installieren oder Konfigurieren.)

    Was die tun ist aber auch nur ab und zu was Drucken. Diese Erzeugnisse möchte ich gerne digitalisieren.

    1) Also, ich klemm den Raspberry Pi als Drucker an den Rechner. (Da diese Rechner nicht ins Netz dürfen geht es nicht mit Netzwerkdruckern)

    2) Dieser Druckt den Auftrag in ne Datei. Dafür gibs schon Lösungen à la cups-pdf

    3) Ein weiter Drucker ist am Raspberry Pi angeschlossen. Der das dann wirklich ausdruckt. Kriege ich mit dem Post Processing Script hin


    So habe ich quasi alles was ich drucke direct digitalisiert.


    Was mir aber fehlt, ist aber die Möglichkeit den Raspberry Pi an den Rechner anzuschließen, und dieser ihm dann vorgaukelt, dass es ein normaler Drucker ist. Wo irgendein standard Treiber für funktionier.

  • Wenn Du auf den Rechnern nichts installieren darfst, wirst Du auch keinen wie auch immer gearteten Druckertreiber installieren können, der den Raspi als Drucker verfügbar macht.


    Sonst wärs ja einfach: Einen PDF-Drucker direkt auf dem Rechner installieren.

  • Ich glaube ich hab meine Idee nicht gut erklärt.

    und ich weiss es


    Aber wir haben Rechner, auf denen Ich nichts machen darf.

    und da beisst sich die Katze in den Schwanz, dort MUSS ein Druckertreiber installiert sein der zum Drucker passt, das müsste dann von dem Bit für Bit gesammelt werden geht aber nicht weil du ja nichts installieren darfst oder kannst.


    Wenn überhaupt könnte der PI evt. diese Bits sammeln welche u.U. bis zu etliche 100 MByte anwachsen kann Pixel für Pixel und der PI müsste die genau mit allen Headern an den Drucker senden.


    Merkst du was?


    PS schon die Eingangsfrage ist ja falsch:



    Definiere "echter USB Drucker" Postscript, Bitmap, Tinte, Nadel, TTY, Laser

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ich glaube ich hab meine Idee nicht gut erklärt.

    Aber wir haben Rechner, auf denen Ich nichts machen darf. (Also nichts installieren oder Konfigurieren.)

    Und am USB ist alles erlaubt ?


    Dann muss aber der USB des Pi ein Slave (Controller) sein. Und der muss sich mit der Vendor- und Produkt-ID des Druckers am PC anmelden, die für den installierten Druckertreiber vorgesehen sind.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Theoretisch ist das schon machbar, wenn Du keinen Treiber installieren darfst, dürfte es aber praktisch kaum umsetzbar sein.


    Mit dem Linux USB gadget printer driver und einem Pi Zero (weil der m.W. als einziger Pi den USB gadget mode beherrscht) kannst Du einen Drucker emulieren. Eine Beispielsoftware, die die vom PC empfangenen Daten nach STDOUT ausgibt, liegt bei. Bei der Interpretation dieser Daten wird's dann, da gebe ich jar recht, haarig. Eine Chance sehe ich noch, falls auf den besagten Rechnern ein Treiber für einen nativen Postscript-Drucker installiert ist. Da ließe sich evtl. der PS-output mitschneiden. Eine Konvertierung nach PDF wäre dann relativ trivial.