Our client uses some third party software and devices for their internal work. They print 600 pages per shift and now they wanted to eliminate paper usage without changing their existing systems.

There are LaserJet printers that are connected with desktop PCs and thermal printers that are connected with some small handheld devices which read data from third party cloud server.

enter image description here

Wanted Solution:

I was wondering if we cloud make some kind of programmed wifi enabled USB device (lets say ESP8266) that acts like a printer for PCs and handheld devices. When this device is connected it should be detected as printer and what it does is simply accepts prints and send it to our cloud server.

I know how to deal with all the cloud communications. What I just wanted to know is how to make my device detected as printer and access the file? Do I need to burn some kind of printer drivers in it or what.

  • Desktop OS: Windows 7
  • Handheld Device OS: Linux
  • Printers: HP LaserJet
  • Thermal Printer: Black Copper
  • Printer Ports: USB A


I know that there are various apps for print to pdf but we cannot use them because we dont have rights to directly copy files from these systems. External storage is disabled and we cannot even copy files and send over internet from this restricted pc. So we have only option to read that is coming to printers.

This is something similar that I want: USB Printer Emulator https://www.pclviewer.com/resources/capture/identity.html

  • 1
    \$\begingroup\$ There is already software that emulates a printer to generate a PDF file, no need for a physical device at all. \$\endgroup\$ – Hearth Feb 1 '19 at 17:17
  • 1
    \$\begingroup\$ Take a look at the data that goes to the printer, then reconsider. Thermal printers drivers send what amounts to a picture to printer - you would have to make images from the data and use character recognition on it if you need to, say, read an invoice number out of it. Inkjets the same, multiplied by the number of color tanks. Postscript printers are your best bet - but I doubt the existing label printers are postscript. \$\endgroup\$ – JRE Feb 1 '19 at 17:50
  • 1
    \$\begingroup\$ Have you tried a google search for "usb printer emulator"? This is one of the first hits: pclviewer.com/resources/capture/print2usb.html \$\endgroup\$ – Edgar Brown Feb 1 '19 at 18:04
  • 2
    \$\begingroup\$ There are commercial products that take a literal "print stream" that assumed it was ending up at a line printer and redirect it for software manipulation somewhere else. This is used in places where there are some legacy systems no one wants to crack open and change but at the same time they don't want to keep printing reams of wide-carriage tractor-feed paper. But, as far as I know, these are minimally hardware based, other than knowing how to pull data off a serial or parallel port. As pointed out in the comments, how to make sense of the bytes in the print stream is the challenge. \$\endgroup\$ – user65586 Feb 1 '19 at 19:48
  • 1
    \$\begingroup\$ @Elliot not violating any agreement its just those systems are restricted by vendors. Its factory's own data, there isn't any legal challenge \$\endgroup\$ – UsamaAmjad Feb 1 '19 at 20:27

You could just purchase commercial products that do this. But rolling your own is possible. An ESP8266 would be too limited for this. It's meant to be a serial to wifi adapter with some extra GPIO. Instead, a computer with usb OTG or peripheral ports and linux using something like USB Gadget Printer drivers that allows you to emulate a printer to the host computer. Obviously this will require some intermediate to advance coding to figure out. Once you have that set up, the print data can be forwarded, as it's likely in a standard PCL format. The time and skill needed should be compared to the commercial product cost.

See: https://unix.stackexchange.com/questions/408293/how-to-make-g-printer-usb-gadget-printer-work-in-raspberian-pi and https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/other-modules and https://forum.armbian.com/topic/1359-bananapi-installing-the-gadget-printer/

  • \$\begingroup\$ Of course, if your license with the vendor says "you cannot substitute the physical printer with a print to pdf solution" then don't do that. But I doubt it says that, any more than it says "don't scan the pages it prints out". \$\endgroup\$ – Passerby Feb 2 '19 at 1:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.