home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / laser / postprn.arc / PORT2.PS < prev    next >
Text File  |  1989-06-09  |  2KB  |  125 lines

  1. %!
  2.  
  3. %
  4. % Two-Up Portrait Page Printer
  5. %
  6.  
  7. /inch {72 mul} def
  8. /pageheight 8.5 inch def
  9. /pagewidth 11 inch def
  10.  
  11. /p0 .3 inch def
  12. /p1 5.54 inch def
  13. /pg 0 def
  14.  
  15. /lmarg p0 def
  16. /tmarg .3 inch def
  17. /bmarg pageheight .3 inch sub def
  18. /lincr 8.7 def
  19.  
  20. /x tmarg def
  21. /y lmarg def
  22. /xw 0 def
  23. /yw 0 def
  24. /i currentfile def
  25. /s 1000 string def
  26. /ones 1 string def
  27.  
  28. /lastFF 0 def
  29. /page_text 0 def    % no text on this page
  30.  
  31. /undershow
  32. {   currentlinewidth exch
  33.     dup show   currentpoint 3 2 roll
  34.     stringwidth neg
  35.     2 0 rmoveto   rlineto 0.4 setlinewidth stroke
  36.     moveto setlinewidth
  37. } def
  38.  
  39. /dolines
  40. {
  41.     gsave
  42.     .1 setlinewidth
  43.     newpath
  44.         .2 inch 5.5 inch moveto
  45.         8.3 inch 5.5 inch lineto
  46.         stroke
  47.     grestore
  48. } def
  49.  
  50. /doFF
  51. {
  52. %
  53. % Takes 2 arguments.
  54. %  Top: type of FF encountered, be it a reall FF, bottom of page,
  55. %       or what-not.
  56. %  Next: force the FF or only if stuff on page.
  57. %
  58.     /curFF exch def
  59.     1 eq
  60.     {
  61.         dolines
  62.         showpage
  63.         /page_text 0 def
  64.     }
  65.     {
  66. %
  67. % if FF right after last line on page, ignore FF
  68. %
  69.         curFF 1 eq                % This is FF?
  70.         lastFF 2 eq                % Last was type 2 -- margin
  71.         x tmarg eq                % Still at left margin
  72.         y lmarg eq                % Still at top margin
  73.         and and and false eq    % Do it if all the above is false
  74.         {
  75.             pg 0 eq
  76.             {
  77.                 /pg 1 def
  78.                 /lmarg p1 def
  79.             }
  80.             {
  81.                 /pg 0 def
  82.                 /lmarg p0 def
  83.                 dolines
  84.                 showpage
  85.                 /page_text 0 def
  86.             } ifelse
  87.         } if
  88.     } ifelse
  89.     /x tmarg def
  90.     /y lmarg def
  91.     /xw 0 def
  92.     /lastFF curFF def
  93. } def
  94.  
  95. /normal-font /Courier findfont [0 7.75 -7.75 0 0 0] makefont def
  96. /bold-font /Courier-Bold findfont [0 7.75 -7.75 0 0 0] makefont def
  97. /italic-font /Courier-Oblique findfont [0 7.75 -7.75 0 0 0] makefont def
  98. /bolditalic-font /Courier-BoldOblique findfont [0 7.75 -7.75 0 0 0]
  99.                 makefont def
  100. /isbold 0 def
  101. /isitalic 0 def
  102.  
  103. /lineprint
  104. {
  105.     normal-font setfont
  106.     5 setlinewidth
  107.     {i s readline
  108.         {
  109.             x y moveto
  110.             showline
  111.             /y lmarg def
  112.             /x x lincr add def
  113.             x bmarg gt
  114.             { 0 2 doFF } if
  115.         }
  116.         {
  117.             page_text 1 eq
  118.             {1 0 doFF} if
  119.             exit
  120.         } ifelse
  121.     } loop
  122. } def
  123.  
  124. lineprint
  125.