The problem you are seeing is not caused by ulimit. The lpr spooling
system has a default maximum "copy size" of 1000 blocks. This is the
largest file size it can print.
This can be increased by modifying the /etc/printcap file. All that is
needed is to add a field to the entry for the queue where the large print
jobs will be printed.
The field to be added is "mx". If the value of "mx" is set to 0 (zero),
then it sets the size to unlimited.
For example,
lp|at|AppleTalk|postscript|PostScript:\\
:mx=0:\\
:lp=/dev/null:\\
:if=/usr/spool/lpd/AppleTalk/ifilter:\\
:of=/usr/spool/lpd/AppleTalk/ofilter:\\
:nf=/usr/spool/lpd/AppleTalk/nfilter:\\
:sd=/usr/spool/lpd/AppleTalk:
Please note that the second line says
:mx=0:\\
The lpr system will create temporary files before sending them to the
printer, if you set the value of "mx" to 0 (zero), you could run out of
disk space on the volume where the spool directory is located.
There are a couple of options to prevent this from happening.
One option is to create the file "minfree" in each spool directory for a
queue set as unlimited.
The file minfree in each spool directory contains the number of disk blocks
to leave free so that the line printer queue won't completely fill the
disk. You can edit the minfree file with your favorite text editor.
The file should only contain one line with the number of blocks, for
example:
5000
What this will do is prevent the lpr spool system from creating temporary
files if the disk had less than 5000 blocks free.
The other option is to use the "-s" flag of the lpr command. This flag
causes symbolic links to be created in the spooler directories instead of
copies of the files to be printed. By creating the symbolic links, this
option conserves the file-system space available.
$ lpr -s -PLP1 ...
For more information consult the A/UX manual page for lpr(1).