Article View: comp.lang.postscript
Article #5818Re: Break down drawing larger than pagesize ?
From: Rainer Pruy
Date: Tue, 22 Dec 1992 17:21
Date: Tue, 22 Dec 1992 17:21
89 lines
4888 bytes
4888 bytes
In <1992Dec22.025320.5909@leeweyr.sccsi.com> bill@leeweyr.sccsi.com (Bill Lee) writes:
> In article <1992Dec21.171203.29295@cs.brown.edu> jgm@cs.brown.edu (Jonathan Monsarrat) writes:
> >
> >>Has anyone ever done a program (be it postscript or a tool creating
> >>postscript), that can draw on an (infinitely large) virtual page, then
> >>break it down into an acceptable size (say the printer's default),
> >
> >Here's a hack that may be of use to you. I've used it to create
> >posters 18 feet high! :)
> >
> >Right now it's set to print "normal size" -- just one page.
> >
> >-Jon
> >
> (Another of Jon's Obfuscated PostScript figures deleted) 8-{)
> Has anybody been able to answer this question in general?
> I do not believe this can be done in most PostScript interpreters for an
> ARBITRARY image.
[...observation regarding problems of blue book poster code deleted...]
> Comments???
> Regards,
> Bill Lee
Not for arbitray images, but for most images. It is clearly impossible for
wierd resolution dependent images. For deterministic device independent images
'posterization' is just a matter of (disk) space and (communication) time.
The key idea is to avoid creating a procedure at all.
Yes, using a procedure, as is suggested in the blue book, has space and time
benefits. In level 2 PS such a procedure could be defined as PaintProc of a
forms dict and the forms cache will probably speed up processing.
For complex page descriptions, as Bill noted, defining a procedure
might fail due to implementation restrictions.
However, one does not need to define a procedure. Just repeat the page
description itself each time prefixed with necessary CTM modification commands
as suggested in the blue book example.
The only difficulty arises with page desriptions using device or page setup
commands (A4, letter, pagedim, initgraphics, init... et al.), which would
interfere with the CTM modifications necessary for producing individual
poster sheets.
With such PS code there are two possibilities:
- commenting out the 'bad' commands
either by special casing several products (needs knowledge of all products
producing postcript code posters should be made from) or by providing
'emulations' for all critical commands (requires kowledge of postscript in
general and probably some undocumented, product (printer) dependent
operators in systemdict or serverdict (For many software products red book
documented operators will suffice, but I don't know what device dependencies
hide inside the LaserPrep prologue of Adobe.)
- inserting poster CTM modifications AFTER all such 'bad' commands
This is trivial for DSC compliant code. Insert 'poster code' just at the end
of each 'page setup' section, just before '%%EndPageSetup', or, if this DSC
comment is not used, just after the '%%Page:' comment.
Repeating a page description allows for producing a poster form a page
description, as long as the printer used already was able to print the
plain page.
Regards,
Rainer Pruy
/----------------------------------------------------------------------------\
| Rainer Pruy | email: |
| | DOMAIN: pruy@informatik.uni-erlangen.de |
| Friedrich-Alexander | X400: /C=de/A=dbp/P=uni-erlangen/OU=informatik/ |
| Universitaet | /S=Pruy/G=Rainer/ |
| | UUCP: ...!uunet!fauern!pruy |
| CS Department IMMD IV |----------------------------------------------------|
| (operating systems) | phone: +49 9131 85-7909 |
| |----------------------------------------------------|
| Martensstrasse 1 | ================================================== |
| |// Programming Department: \\|
| D-8520 Erlangen |\\ Mistakes made while you wait //|
| West Germany | ================================================== |
\----------------------------------------------------------------------------/
Technical Details
Message-ID:
<1h7iqoEINN2qu@uni-erlangen.de>Path:
arc1-ca.pugleaf.net!sparky!uunet!gatech!darwin.sura.net!Sirius.dfn.de!fauern!uni-erlangen.de!immd4.informatik.uni-erlangen.de!pruyReferences:
<BzIK8M.6yB@newsserver.technet.sg> <1h4rslINNl4f@CS.UTK.EDU> <1992Dec21.171203.29295@cs.brown.edu> <1992Dec22.025320.5909@leeweyr.sccsi.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!gatech!darwin.sura.net!Sirius.dfn.de!fauern!uni-erlangen.de!immd4.informatik.uni-erlangen.de!pruy From: pruy@immd4.informatik.uni-erlangen.de (Rainer Pruy) Newsgroups: comp.lang.postscript Subject: Re: Break down drawing larger than pagesize ? Date: Tue, 22 Dec 1992 17:21:28 GMT Organization: CSD., University of Erlangen Distribution: world Message-ID: <1h7iqoEINN2qu@uni-erlangen.de> References: <BzIK8M.6yB@newsserver.technet.sg> <1h4rslINNl4f@CS.UTK.EDU> <1992Dec21.171203.29295@cs.brown.edu> <1992Dec22.025320.5909@leeweyr.sccsi.com> NNTP-Posting-Host: faui45x.informatik.uni-erlangen.de Lines: 89