home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2001 April
/
PCWorld_2001-04_cd.bin
/
Software
/
Vyzkuste
/
gs
/
gsv36w32.exe
/
pstotext
/
pstotxt3.dll
/
RCDATA
/
3
< prev
Wrap
Text File
|
2000-03-11
|
3KB
|
85 lines
% Copyright (C) 1995, Digital Equipment Corporation.
% All rights reserved.
% See the file pstotext.txt for a full description.
%
% Lectern:
% PostScript to be prepended to a job to rotate its images by //angle,
% adjusting the page shape appropriately. This works only for
% devices (such as ppmraw) that allow arbitrary imaging areas.
% Last modified on Thu Aug 1 11:36:25 PDT 1996 by mcjones
% modified on Tue Mar 14 14:55:13 PST 1995 by birrell
4 dict begin
/myDict currentdict def
/angle 90 def
/languagelevel where { pop languagelevel 2 ge } { FALSE } ifelse
{
% Use setpagedevice for level 2 implementations
/lastW 0 def
/lastH 0 def
<<
/BeginPage {
//myDict begin
pop % page number
currentpagedevice /PageSize get aload pop % stack: W H
% (H = ) print dup =
% (W = ) print 1 index = flush
% (lastH = ) print lastH =
% (lastW = ) print lastW = flush
lastH ne exch lastW ne or {
% /PageSize has changed: rotate it
<<
/PageSize [
currentpagedevice /PageSize get aload pop % stack: W H
exch % stack: newW newH
/lastW 2 index def
/lastH 1 index def
]
>> setpagedevice % calls BeginPage recursively
% (H := ) print lastH =
% (W := ) print lastW = flush
} {
% Rotate ctm. Don't do this if we're also adjusting PageSize,
% because that causes another BeginPage call, which does this.
currentpagedevice /PageSize get aload pop % stack: width height
2 div exch 2 div exch % stack: center
2 copy translate //angle rotate neg exch neg translate
} ifelse
end % //myDict
}
>> setpagedevice
} {
% Use ghostscript specific code for earlier systems
% flip current frame buffer
currentdevice getdeviceprops >> /HWSize get
aload pop exch 2 array astore
mark exch /HWSize exch currentdevice putdeviceprops pop
% fix showpage to add a rotation and translation
/adbFixup {
currentdevice getdeviceprops >>
dup /HWSize get aload pop 3 -1 roll
/HWResolution get aload pop
% stack: xsize ysize xres yres
exch 4 -1 roll exch div 72 mul
% stack: ysize yres xpts
3 1 roll div 72 mul
% stack: xpts ypts
2 div exch 2 div exch
2 copy translate //angle rotate neg exch neg translate
} bind odef
/adbShowpage /showpage load def
userdict begin /showpage { adbShowpage adbFixup } bind odef end
adbFixup
% define new ".setpagesize" that flips its arguments
statusdict begin
/adbSet /.setpagesize load def
/.setpagesize {
exch adbSet adbFixup
} bind def
end
} ifelse
end % //myDict