I recently committed several changes to cvs to vastly improve SCS support
and PDF output support. It now follows the host's requests for page size,
margins, and CPI, as well as a few other fixes for SCS codes we weren't
But I've run into a significant problem. Suppose you have a 17 CPI print
job that is 198 columns wide. Because these are not the default sizes of
10 CPI and 80 columns the iSeries will send the Set Page Presentation Size
command and a few other commands for font and margins. The scs code we
now have will correctly parse these command and set the page size, fonts,
and margins correctly. If when you print this job you save the spool file
and then immediately send it again, the page size, font, and margin
commands are not sent. The iSeries expects the printer to remember what
the last settings were for these attributes. The iSeries only sends those
parameters for print jobs whose attributes differ from the previous print
We do print processing via two components: lp5250d and the outputcommand
parameter in ~/.tn5250rc of the print session (usually one of scs2ascci,
scs2pdf, or scs2ps). lp5250d does not have any SCS code and simply passes
on the print stream to the outputcommand via a pipe. Each time a print
job is processed the command specified in outputcommand is started,
attached to the pipe, and then exits when the job is complete. All the
SCS processing is done in this second part. Because of this, the only
programs that are aware of the current page size, fonts, and margins are
scs2ascii, scs2pdf, and scs2ps. But because they exit at the end of each
job, there is no way for them to remember what the page, font, and margin
settings were from the previous job. So a job such as I described above
would print incorrectly the second time it is sent to be printed.
lp5250d could potentially remember these attributes and pass them to
scs2pdf as defaults. I've been experimenting with adding SCS code to
lp5250d but so far I'm just duplicating all the work that is in scs.c and
scs2pdf.c. Somehow I need to get lp5250d to know what these attributes
are so it can remember them between print jobs.
One of my thoughts is to integrate the scs2* programs into lp5250d, but
that would result in a big mess it seems like. Output format could be
chosen via a command line switch.
Thoughts? Suggestions? Comments?
It's not the software that's free; it's you.
- billyskank on Groklaw
This mailing list archive is Copyright 1997-2020 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact