From: brown@vidiot.UUCP (Vidiot)
Newsgroups: comp.lang.postscript
Subject: Re: 2-sided printing w/o crinkling?
Date: 30 Sep 92 06:44:11 GMT
Reply-To: brown@vidiot.UUCP (Vidiot)
Organization: Vidiot's Hangout

In article <1860@shaman.wv.tek.com> andrew@frip.wv.tek.com writes:
<[]
<
<	"I can print double-sided by first printing the odd pages, then
<	putting the output back into the input tray, and printing the
<	even pages.  But when I do this I get a very high percentage of
<	crinkled pages.  What can I do to avoid this?"
<
<Wait an hour before printing the even pages, and flip through the pages
<(expose them to air) a few times while you wait.  The first pass heats
<the paper and drives out the moisture.

Doesn't work too well with my LaserWriter IINT.  The main problem is the
wait...an hour?  Can't get much work done waiting an hour.  The second
problem is that the curl that was created in the paper tends to stay.

But, I have created a method of working around the problem and I haven't
had a crinkle yet.  I've had the stupid printer pull in more sheets than
it should, but never a crinkle.

My cure takes on two forms.  One depends on the document being formatted
with groff (a troff source), the other works with non-groff PostScript.
All of these methods work with the Chris Lewis psxlate program (part of
his psroff suite of programs).

Here are the scripts that I use for groff PostScript:

program name: printthem
***** CUT HERE *****
#! /bin/csh
if ( $#argv == 0) then
	echo "No file name given, please re-enter command with file to print."
	exit
endif
echo -n "Number of "
grep Pages: $argv[1]
psxlate -2rB < $argv[1] | lp
echo " "
echo "Press return when paper placed into tray for second side."
set a=($<)
upsxlate -2B < $argv[1] | lp
***** CUT HERE *****

program name: upsxlate
***** CUT HERE *****
#!/bin/csh
sed -e "/1 -1 scale/s/scale/scale 612 PL translate 180 rotate/" | psxlate $*
***** CUT HERE *****

Here is what happens with the scripts.  It is real simple.  The first half,
the even half, are printed first.  The paper prints in the top tray, face
down.  After printing, the paper is lifted from the top tray and dropped
into the feeder tray.  No turning on any axis.  Then the odd pages are
printed...feet first...again in the top output tray.  The result is double-
sided output in order.

The key is the printing of the second side, feet first.  By printing upside-
down, the curled side isn't fed into the tray.  The side that comes out last
isn't curled.  So, I print in the opposite direction.  Obviously this only
works with groff output.  But, if you are always using the same package,
you should be able to find the right section of the PostScript output and
change the code to be able to flip it around.

Now, if you can't print in reverse, the other trick is to shove the paper
through, feet first...printing blank sheets to fix the curl.  Then you can
print the other half, top first.  Here is the simple script for that:

***** CUT HERE *****
#!/bin/csh -f
cat > blank.page.ps << EOF
%!
save
/#copies $1 def
showpage
restore
EOF
lp blank.page.ps
***** CUT HERE *****

I call the program "blank.page" and on the command line the number of pages
that need to be sent through the printer is added, like:

	blank.page 5

After doing the above, the curl is removed from the leading edge, which was
the trailing edge when sent through blank.

I know that this eats up printer mechanical time, so that I why I looked
into printing the second side right away, upside down.

I hope this helps, at least one other person.
-- 
      harvard\                          spool.cs.wisc.edu!astroatc!vidiot!brown
Vidiot  ucbvax!uwvax..........!astroatc!vidiot!brown
      rutgers/            INTERNET:vidiot!brown%astroatc.UUCP@spool.cs.wisc.edu
                                   brown@wi.extrel.com