Files
luos/gulliver/thirdparty/html2ps_pdf/postscript/viewport.ps

172 lines
3.0 KiB
PostScript
Executable File

/viewport-create { % => Box
<<
/left 0
/width 0
/height 0
/top 0
/offset 0
/page-offset 0
/current-page 1
/anchors << >>
>> % => Box Viewport
1 index get-left
1 index exch
/left exch put
1 index get-top
1 index exch
/top exch put
1 index /get-width call-method
1 index exch
/width exch put
1 index get-height
1 index exch
/height exch put
exch pop
} def % => Viewport
/viewport-draw-page-border { % => Viewport
newpath
1 setlinewidth
0 0 0 setrgbcolor
dup viewport-get-left
1 index viewport-get-bottom
moveto
dup viewport-get-left
1 index viewport-get-top
lineto
dup viewport-get-right
1 index viewport-get-top
lineto
dup viewport-get-right
1 index viewport-get-bottom
lineto
closepath
stroke
pop
} def
/viewport-get-anchor { % => Viewport Name
1 index /anchors get % => Viewport Name Anchors
dup 2 index known { % => Viewport Name Anchors
1 index get % => Viewport Name AnchorData
} {
pop /null
} ifelse % => Viewport Name AnchorData
exch pop
exch pop
} def
/viewport-get-bottom { % => Viewport
dup /top get
1 index /height get
sub
exch pop
} def
/viewport-get-height {
/height get
} def
/viewport-get-left {
/left get
} def
/viewport-get-offset-delta { % => Viewport
/offset get
} def
/viewport-get-page-offset {
/page-offset get
} def
/viewport-get-right { % => Viewport
dup /left get
1 index /width get
add
exch pop
} def
/viewport-get-top { % => Viewport
dup /top get
exch pop
} def
/viewport-init-page { % => Viewport
0 1 index /page-offset get
translate
0 tmargin neg
translate
pop
} def
/viewport-next-page { % => Viewport
dup /page-offset get neg % => Viewport Offset
real-page-height sub % => Viewport Offset1
1 index /offset get add % => Viewport Offset2
neg
1 index exch % => Viewport Viewport Offset2
/page-offset exch put % => Viewport
dup /top get
real-page-height sub % => Viewport Top'
1 index /offset get add
1 index exch
/top exch put
dup /offset 0 put % => Viewport
% Increase current page number
dup /current-page get 1 add
1 index exch
/current-page exch put % => Viewport
pop
} def
/viewport-put-anchors { % => Data Viewport
exch /anchors exch put
} def
/viewport-put-offset-delta { % => Delta Viewport
exch /offset exch put
} def
/viewport-setup-clip {
dup viewport-get-left
1 index viewport-get-bottom
moveto
dup viewport-get-left
1 index viewport-get-top
lineto
dup viewport-get-right
1 index viewport-get-top
lineto
dup viewport-get-right
1 index viewport-get-bottom
lineto
closepath
clip
pop
} def