Poster


%!PS-Adobe-1.0
%%Creator: Holger Gehringer
%%Title: Beispiel fuer Poster
%%CreationDate: Mo, 23.11.1998
%%DocumentMedia: A4 595 842 0 () ()
%%Orientation: Portrait
%%Pages: (atend)
%%DocumentFonts: Times-Roman Helvetica
%%EndComments

% Das Programm zeigt, wie ein (beliebig) grosses Poster auf einzelne DIN A4-
% Blaetter aufgeteilt werden kann, die dann zusammengeklebt werden koennen.

/PrintPoster                  % PrintPoster teilt ein grosses Bild in einzel-
                              % ne Seiten auf. Man braucht 3 Parameter:
                              % Eine Prozedur, die das Bild zeichnet, und die
                              % Spalten- und Zeilenanzahl des Posters.
{ /Rows exch def              % Zeilen
  /Columns exch def           % Spalten
  /BigPictureProc exch def    % Bild-Prozedur
  
  newpath                     % Da nicht alle Ausgabegeraete bis an den Rand
  LeftMargin BotMargin moveto % des Papiers drucken koennen, wird ein Clip-
  0 Pageheight rlineto        % ping-Pfad definiert, der darauf Ruecksicht
  Pagewidth 0 rlineto         % nimmt.
  0 Pageheight neg rlineto
  closepath clip
  
  LeftMargin BotMargin        % Ursprung in die linke untere Ecke des Clip-
  translate                   % ping-Pfades verschieben.
  
  0 1 Rows 1 sub              % Fuer jede Zeile ...
  { /Rowcount exch def
    0 1 Columns 1 sub         % Fuer jede Spalte ...
    { /Colcount exch def
      gsave
      Pagewidth Colcount      % Ursprung wird so verschoben, dass aktuelle
      mul neg                 % Seite mit dem Bildausschnitt uebereinstimmt.
      Pageheight Rowcount
      mul neg
      translate
      BigPictureProc          % wird fuer jeden Bildausschnitt aufgerufen
      copypage erasepage      % Da showpage den Clipping-Pfad neu initiali-
                              % sieren wuerde, statt dessen copypage (gibt
                              % aktuelle Seite aus) und erasepage (loescht
                              % aktuelle Seite).
      grestore
    } for
  } for
} def

/LeftMargin 30 def            % Diese Werte sind fuer den Clipping-Pfad
/BotMargin 30 def
/Pagewidth 540 def
/Pageheight 750 def

/StopSign                     % konstruiert ein uebergrosses Stopzeichen
{ gsave
  newpath
  100 600 moveto              % Achteck besteht aus sieben Linien un einem
  7 { 0 400 rlineto           % closepath
      -45 rotate
    } repeat
  closepath
  100 setlinewidth
  .5 setgray stroke           % Rahmen mit Grauwert von 50% zeichen
  grestore gsave
  /Helvetica-Bold findfont
  500 scalefont setfont
  200 600 moveto
  .53 1 scale                 % Damit Buchstaben schmaler und hoeher werden,
                              % wird Koord.s. entsprechend skaliert.
  (STOP) show
  grestore
} def

%%EndProlog

{ StopSign } 2 2 PrintPoster  % Ein Poster, bestehend aus 2 Spalten (= 2 Sei-
                              % ten breit) und 2 Zeilen (=2 Seiten hoch) wird
                              % ausgegeben.

%%Trailer
%%Pages: 4


Vorschau:

Download PostScript-File

© Holger Gehringer, Dezember 1998