When I try to send raw files (like PCL files) to my network printer, the CUPS queue gets screwed up and the printer becomes "disabled", even if I use commands like "lpr -l" or "lpr -o raw".

I think that maybe the PPD is screwing it up because the PPD for the printer specifically says "Postscript (recommended)" in its description and if send postscript to it then it works fine.

I cannot send directly to the printer as a device because it is networked.

3 Answers 3


PCL and Postscripts are two competing printing protocols.

If the printer supports both protocols, you have to have defined different queues in CUPS with different PPDs/different ways of talking with the prints.

You might try to talk to the printer via IPP.

If the printer specific model only talks Postscript, then you have no business sending PCL to it.


You can use lpr -o raw pcl-file to send data to the printer without any modification made to it. In fact this usage is so common that there's a separate option for it: lpr -l pcl-file (-l is equivalent to -o raw).


After struggling with this for a long time (about a month) I found out that basically lpr/CUPS some kind of brain damaged logic that causes it to fail with networked printers. The problem is the whole "disabled/enabled" printer paradigm which causes a printer to become unusable as soon as lpr becomes confused, which is bound to happen at some point. Since a user has to have super user privileges to diagnose problems like these, lpr is essentially unusable for anyone in a workgroup environment with non-privileged users.

The way I solved my problem was to write a short program in C that connects to the printer's IP address on port 9100, opens the PCL file to print readonly, copies the file to the connection socket, then closes the connection and the file. This works flawlessly every time for me. So, basically use whatever programming capability you have to do this if you want to print a raw file. You could probably even do it in bash or csh.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .