[comp.lang.postscript] landscape printing

lawyer@IDA.ORG (Steve Lawyer) (09/26/89)

Does anyone know how to convert a Postscript file, which normally prints text,
from portrait mode to landscape mode?

Any assistance would be appreciated.

Steve Lawyer
-----------
lawyer@ida.org

perry@ccssrv.UUCP (Perry Hutchison) (09/30/89)

In article <1989Sep25.213933.16866@IDA.ORG> lawyer@IDA.ORG (Steve Lawyer)
writes:

>Does anyone know how to convert a Postscript file, which normally prints text,
>from portrait mode to landscape mode?

This ranges from the trivial to the very difficult, depending on just what you
want to do.  Keep in mind that the pages look something like this:

  +------------+                              +------------+
  |            |                              |            |
  | high  text |                              |            |
  |            |      +----------------+      |------------+---+
  |            |      |                |      |            |   |
  |  mid text  |      |                |      |            |   |
  |            |      |                |      |            |   |
  |            |      |                |      |            |   |
  |  low text  |      |                |      |            |   |
  |            |      |                |      |            |   |
  +------------+      +----------------+      +----------------+
     Portrait             Landscape               Overlapped

Now if you only want to print the bottom 8.5" of the portrait page (i.e. the
part that overlaps the landscape page -- this means that what I represented
as "high text" will not be printed) you can precede the file with something
like this:

  -90 rotate            % landscape orientation
  /xmax 11  72 mul def
  xmax neg 0 translate  % move to the lower left corner of the landscape page

This has to be repeated after each execution of initgraphics (including
showpage, which does an initgraphics) or any other operation which builds a
graphics state without starting from the current one.

If you want to _reduce_ the portrait image to fit on the left half (roughly)
of a landscape page, you can use something like:

  -90 rotate            % landscape orientation
  /xmax 11  72 mul def
  xmax neg 0 translate  % move to the lower left corner of the landscape page
  8.5 11 div dup scale  % reduce 11" to fit in 8.5"

As before, this needs to be done at the start of the file and after each
initgraphics.

However, if what you want is to _revise the layout_ so that what used to fit
well on the portrait page now fits well on the landscape page, you really need
to go back into Pagemaker (or whatever application you used to create the
PostScript file in the first place) to do that.  Making major layout changes
by directly modifying application-generated PostScript files is tedious,
error-prone, and an all-around pain.