[comp.lang.postscript] A4

jmr@nada.kth.se (Jan Michael Rynning) (01/05/90)

In article <1679@intercon.com> amanda@mermaid.intercon.com (Amanda Walker) writes:
>The first operation is to define a new page-size procedure that calls
>framedevice to make the page frame buffer smaller, [...]

On the first Apple LaserWriters (PostScript version 23.0) we had to use
this to be able to print on the bottom 1.25 or so inches of A4 papers.

Apart from that I've never found anything practically useful ``hidden''
in the dictionaries.

Jan Michael Rynning,			jmr@nada.kth.se
Department of Numerical Analysis	If you can't fully handle domains:
  and Computing Science,		ARPA: jmr%nada.kth.se@uunet.uu.net
Royal Institute of Technology,		UUCP: {uunet,mcvax,...}!nada.kth.se!jmr
S-100 44 Stockholm,			BITNET: jmr@sekth
Sweden.					Phone: +46-8-7906288

jmr@nada.kth.se (Jan Michael Rynning) (02/13/90)

I picked up LWNT_470.PPD from Adobe's file server, and in that file I found
the following piece of code, which is supposed to tell me the current page
size of my Apple LaserWriter II NT PostScript version 47.0 laserprinter.  

*?PageSize: "
 save statusdict begin
 /papersize where{ pop
  12 dict begin
   /lettertray (Letter) def /legaltray (Legal) def
   /11x17tray (Tabloid) def /ledgertray (Ledger) def
   /a3tray (A3) def /a4tray (A4) def
   /a5tray (A5) def /b4tray (B4) def
   /b5tray (B5) def /executivetray (Executive) def
   papersize {
     {load exec} stopped not{= flush}if
   }{
     {load exec} stopped not{print (.Transverse) = flush}if
   }ifelse
  end
 }{
  /pagetype where{pop[(Letter)(Legal)]pagetype dup 1 gt{pop 1}if get = flush}if
 }ifelse
 end restore
"
*End

When I sent the query to the printer it told me the page size was "Letter".
I did expect an "A4", since I had an A4 papertray with A4 papers, and the
printer obviously knew that, as it had set up an A4 imageable area.  Now,
how do I get the the printer to tell me the truth?

I know I can do a "statusdict /printerstatus get exec 126 and", and look at
the result (0=no papertray, 2=A4 papertray, 66=envelope papertray, etc.).
Is that the way I should do it?  If it is, it should be in the PPD file, if
not, the proper way to do it should be in the PPD file.

While we are at it, APPLE230.PPD does not indicate that the Apple LaserWriter
PostScript version 23.0 laserprinter can print on A4 papers.  It was sold with
an A4 papertray (only, no lettersize papertray, we don't use lettersize paper
anyway), and it is possible to set up an A4 imageable area by using some Post-
Script operators which you won't find in the "Red Book".  The code to set up
an A4 imageable area on that printer should be included in its PPD file.

I did some printouts on a NeXT laserprinter some weeks ago. The printer was
equipped with an A4 papertray (only, no lettersize etc.).  Nevertheless, the
Display PostScript version 1006.24 which ran on the NeXT set up a lettersize
imageable area, and didn't even recognize the "a4" operator.  I thought Adobe
had learnt its A4 lesson from the oversight in PostScript version 23.0.  

A4 is the predominant papersize in most countries of the world (the U.S. is
about the only exception).  Adobe, can you please support A4 in all future
versions of PostScript, for all devices that can handle it, and can you also
supply the patches needed for PostScript versions where you omitted it, in
spite of the fact that they run on devices which are perfectly capable of
printing on A4 paper, are sold with A4 papertrays only, to customers who use
A4 paper?

Jan Michael Rynning,			jmr@nada.kth.se
Department of Numerical Analysis	If you can't fully handle domains:
  and Computing Science,		ARPA: jmr%nada.kth.se@uunet.uu.net
Royal Institute of Technology,		UUCP: {uunet,mcvax,...}!nada.kth.se!jmr
S-100 44 Stockholm,			BITNET: jmr@sekth
Sweden.					Phone: +46-8-7906288