Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site uw-beaver Path: utzoo!watmath!clyde!cbosgd!cbdkc1!desoto!packard!ihnp1!ihnp4!mhuxn!mhuxr!mhuxt!houxm!mtuxo!mtunh!mtung!mtunf!ariel!vax135!cornell!uw-beaver!laser-lovers From: laser-lovers@uw-beaver Newsgroups: fa.laser-lovers Subject: Scribe defn for multipage output on PostScript printers Message-ID: <1455@uw-beaver> Date: Sun, 28-Jul-85 05:21:45 EDT Article-I.D.: uw-beave.1455 Posted: Sun Jul 28 05:21:45 1985 Date-Received: Wed, 31-Jul-85 02:12:47 EDT Sender: daemon@uw-beaver Organization: U of Washington Computer Science Lines: 125 From: Brian Reid I have put together two new Scribe device definitions, which work with Unilogic's Scribe PostScript driver to produce 2-up and 4-up output pages. If you say @Device(PShalfpage), then your output comes out rotated 90 degrees, with two logical pages per physical page, each reduced by an appropriate amount. If you say @Device(PSquarterpage), then your output comes out with 4 logical pages per physical page. The 2-up output is obviously useful; you might wonder what 4-up is good for. Well, I use it for doing layout proofs of big documents on my home printer. My LaserWriter only holds 100 sheets of paper. If I print a document 4-up, I can get 400 pages printed without me having to tend to the printer. It also saves paper. The 4-up pages are perfectly readable as proof copy, though the resulting 4-point and 6-point type is not as crisp as the 8- or 12-point stuff that comes out on full size pages. As a complete non sequitur to PostScript Scribe sites, I recommend strongly that you change Unilogic's "ScaleableLaser" generic device into a "PostScript" generic device. This is because of the interaction of the @Picture command with the generic device. If some other scaleable laser format comes along (e.g. if Interpress printers that can scale fonts ever become available), and you try to piggyback it on "ScaleableLaser", you will find that @Picture commands will stop working. Also, users don't seem to be able to spell "Scaleable" very well; they are constantly writing "ScalableLaser". ------------------ here's how to make the database files --------------------- For @Device(PShalfpage), copy postsc.dev into pshalf.dev, then make these changes: @declare(DeviceInitialization "%%EndComments % PostScript Prelude for Scribe (2-up page images 67% scale). 11 2 div 8.5 div dup scale 90 rotate 0 -792 translate /NP {/COL 1 COL sub def}def /EOD {COL 0 ne {showpage}if}def /COL 0 def /BS {/SV save def COL 612 mul 0 translate newpath 0 0 moveto 612 0 lineto 612 792 lineto 0 setlinewidth stroke} def /ES {COL 1 eq {showpage} if SV restore NP} def /SC {setrgbcolor} def /RST {100 div} def /CVTXY {RST 792 sub abs exch RST exch} def /RDF {WFT findfont SLT 0 eq {SSZ scalefont} {[SSZ 0 SLT sin SLT cos div SSZ mul SSZ 0 0]makefont} ifelse setfont} def /SLT 0 def /SI { /SLT exch def RDF } def /WFT /Courier def /SF { /WFT exch def RDF } def /SSZ 10 def /SS { /SSZ exch def RDF } def /MT { CVTXY moveto } def /XM {RST currentpoint exch pop moveto} def /UL {gsave newpath CVTXY moveto RST dup 2 div 0 exch rmoveto setlinewidth RST 0 rlineto stroke grestore} def /PB {/PV save def CVTXY translate pop}def /PE {PV restore}def /SH{show}def /MSS {SSW RST 0 rmoveto} def /SNS { SSW add /SSW exch def MSS} def /MX {/SSW exch def SH MSS} def /M2 {SH MSS MSS} def /M {SH MSS} def /M+ {SH 1 SNS} def /M- {SH -1 SNS} def %%EndProlog ",DeviceFinalization "EOD ") For 4-up output, create psquar.dev from postsc.dev, then make these changes: @declare(DeviceInitialization "%%EndComments % PostScript Prelude for Scribe (4-up page images 50% scale). 0.5 0.5 scale /NP {/COL COL 1 add def COL 1 gt {/COL 0 def /ROW ROW 1 add def ROW 1 gt {/ROW 0 def} if } if } def /EOD {ROW 0 ne COL 0 ne or{showpage}if} def /ROW 0 def /COL 0 def /BS {/SV save def COL 612 mul 1 ROW sub 792 mul translate newpath 0 0 moveto 612 0 lineto 612 792 lineto 0 setlinewidth stroke} def /ES {ROW 1 eq {COL 1 eq {showpage} if} if SV restore NP} def /SC {setrgbcolor} def /RST {100 div} def /CVTXY {RST 792 sub abs exch RST exch} def /RDF {WFT findfont SLT 0 eq {SSZ scalefont} {[SSZ 0 SLT sin SLT cos div SSZ mul SSZ 0 0]makefont} ifelse setfont} def /SLT 0 def /SI { /SLT exch def RDF } def /WFT /Courier def /SF { /WFT exch def RDF } def /SSZ 10 def /SS { /SSZ exch def RDF } def /MT { CVTXY moveto } def /XM {RST currentpoint exch pop moveto} def /UL {gsave newpath CVTXY moveto RST dup 2 div 0 exch rmoveto setlinewidth RST 0 rlineto stroke grestore} def /PB {/PV save def CVTXY translate pop}def /PE {PV restore}def /SH{show}def /MSS {SSW RST 0 rmoveto} def /SNS { SSW add /SSW exch def MSS} def /MX {/SSW exch def SH MSS} def /M2 {SH MSS MSS} def /M {SH MSS} def /M+ {SH 1 SNS} def /M- {SH -1 SNS} def %%EndProlog ",DeviceFinalization "EOD ") Don't forget to change the @Marker commands too.