As mentioned before a data file is transferred using the
command below.
Command
Purpose
\003nnnn dfname
data file transfer
From RFC1179:
The data file may contain any 8 bit values at all. The
total number of bytes in the stream may be sent as the
first operand, otherwise the field should be cleared to 0.
The name of the data file should start with ASCII "dfA".
This should be followed by a three digit job number. The
job number should be followed by the host name which has
constructed the data file. Interpretation of the contents
of the data file is determined by the contents of the
corresponding control file.
There are several surprises in RFC1179.
Apparently a job should only consist of a single data
file. This is a severe limitation, and in fact the BSD lpr and other print spoolers
process jobs with multiple data files. By convention,
these data files have names of the form dfA, dfB, ... dfZ, dfa,
dfz.
The RFC does not specify that the control file and
data file job numbers must be identical. Most
implementations follow this convention, which simplifies
life tremendously.
The RFC does not specify that the control file and
data file job host names must be identical. Most
implementations follow this convention, which simplifies
life tremendously.
A zero length data file does not cause a data transfer
to take place. LPRng modifies
this action to be slightly different. When a zero length
data file transfer is indicated, all of the input until
the connection is closed is used as the contents of the
data file.
When piping into the lpr program, this can be very useful as
it eliminates the need to create temporary files on the
local host. Note that some print spoolers do not use this
interpretation, and this option should be used
carefully.