Hier kommen zwei Probleme zusammen:
1.) Damit ein µC mit einem USB-Drucker kommunizieren kann, muss der µC
ein USB-Host sein, sich also auf der USB-Schnittstelle so verhalten wie
ein PC. Das erfordert einerseits einen ziemlich heftigen Aufwand auf der
Softwareseite, da ein USB-Host-Stack ziemlich viel Aufriss darstellt.
Mit USB-OTG ist das zwar etwas einfacher geworden, aber immer noch
nicht trivial. Andererseits ist auch entsprechende Hardware
erforderlich, nämlich ein USB-Host-Controller. Sowas gibt's
beispielsweise von Philips.
2.) Die meisten Drucker bedürfen auch noch einer speziellen
Druckersteuersprache, damit die überhaupt dazu gebracht werden können,
irgendwas zu drucken. Die dafür erforderlichen Informationen sind bei
einfacheren Druckern nicht zugänglich; das ist bei GDI-Laserdruckern
ebenso wie bei üblichen Tintenstrahldruckern.
Erst Drucker, die eine standardisierte Ansteuerung verwenden, sind da
etwas zugänglicher. Dazu gehören Postscript-Drucker und PCL-Drucker. In
die letztere Kategorie fallen mit sehr alten HP DeskJet-Druckern auch
Tintenstrahldrucker.
Dieser zweite Punkt trifft natürlich auch für Drucker zu, die über eine
klassische Parallelschnittstelle angesprochen werden. Für viele ältere
Tintenstrahldrucker haben findige Leute die Ansteuerung ausgeforscht
und Druckertreiber für Ghostscript geschrieben - daran könnte man sich,
wenn's einem wirklich drauf ankommt, ja orientieren.
Prinzipiell ist auch das erste Problem lösbar, da es
USB-Netzwerkdruckserver gibt. Allerdings ist die darin verbaute
Hardware ziemlich aufwendig und mit allerhöchster Wahrscheinlichkeit
mit einem Prozessor aus einer anderen Leistungsklasse als
beispielsweise einem MCS51 aufgebaut.