Use OpenWrt to send pdf/ps files to a network printer


I would like to use my openwrt box (glinet mango) to send pdf/ps files to a
printer attached on the lan port. My question is what software is there to
do that and is there a way to actually know if the job succeed or in case of error give detailed error information?

So far this works.

# cat test1.pdf | nc 9100

Is there a more integrated way to achieve this? Maybe a client tool that
actually speaks the protocol of the printer and gives more detailed information
if things go wrong? I know lp/lpr from cups but that doesn't seem to be around.
Any hints?

Thanks for your help

There are many ways to do this and your options depend on the printer.

My Brother HL-5450DN has a NIC port and a MAC reserved IP for network printing.

There are also dedicated devices in the networking section of your favorite hardware source called print servers

This is not an endorsement of NewEgg but here is a sampling:


I have read through all the printer_server pages you reference none of them have an answer to what I'm looking for. I can't find a section where to configure p910nd to serve a network printer like I would with cups.

Well why would I use yet another device if all I need is a print client on my openwrt device. For now I use a shell script with some candy around the netcat command but as usual one would think there is a nice more elegant way.

Did you read this
and this?

Can you ping the printer at ?

Do you have a PostScript capable printer or do you need to set up a print filter?

You say the printer is connected to a LAN port. Most printers that come with a LAN port have a built in print server. What is the make/model of your printer so people trying to help you can verify? If you are using cups and can ping the printer, you should not need p910nd. In the cups web interface, select AppSocket/JetDirect (port 9100).

Maybe I was not clear about what setup I have and try to achieve:
I have a Glinet Mango - 2Eth interfaces WAN/LAN. The LAN side is the printer. At this point I have not yet chosen the specific printer model since I need to find a vendor donating a bunch of printers. The projects aims to give the glinet/printer setup to old peoples homes or alike so relatives can print pictures and letters through a webinterface. The glinet fetches the relevant data from the web and then needs to send it to the printer. Ideally this has some buffers in case printer is not ready, or turned off or whatever else can happen.
My lab setup runs with a hp laser jet pro which has an internal spooler but that doesn't protect against things like turned off printer or temporary not available etc..
So again my use case is that the openwrt device is actually the device that wants to print/send the print job and have some kind of good knowledge how things went.

It is going to depend on the printers you end up with. For instance, the are around 15 different HP Laser Jet Pro models with varying network capablility. Those with network capability will not need p910nd - it is essentially built in to the printer.

Spooling takes communication between the client and server. Cups is a spooler that queues the job until the printer is ready. When the printer is ready, the spooler loads as much of the job as the printers ram will hold. When you "nc" the print job you bypass the cups spooler (direct printing)

The other factor is filtering. If you are using opensource, PostScript capable printers or those with Ghostscript based filters are easiest to get working.

This database is useful for printing in OpenSource: