20.4. Job disappears and is never printed, but lpr works

This is a rather disconcerting problem, and usually occurs when sending jobs to either a network printer or a nonconforming RFC1179 print spooler. For details about LPRng and RFC1179, see RFC1179 and LPRng, but here is a quick explanation.

An lpd job consists of a control file, which contains information about the job, and one or more data files. RFC1179 is silent on the order that jobs are sent; however some implementations REQUIRE that the data files be sent first, followed by the control file.

SOLUTION:

Set the send_data_first flag in the printcap for the particular printer, or in the lpd.conf configuration file. This is:

:send_data_first:  (printcap)
send_data_first    (lpd.conf)

Note that some printers/servers INSIST on the control file first; You can clear the flag using send_job_first@ if you need to.