diff options
Diffstat (limited to 'Build/source/texk/windvi/render.ps')
-rw-r--r-- | Build/source/texk/windvi/render.ps | 310 |
1 files changed, 0 insertions, 310 deletions
diff --git a/Build/source/texk/windvi/render.ps b/Build/source/texk/windvi/render.ps deleted file mode 100644 index 0c2ed0ffa38..00000000000 --- a/Build/source/texk/windvi/render.ps +++ /dev/null @@ -1,310 +0,0 @@ -% render.ps - write font bitmaps and metric information to standard output. -% Version 1.15. - -% Copyright (c) 1994, 1997 Paul Vojta. -% -% Redistribution and use in source and binary forms, with or without -% modification, are permitted provided that the following conditions -% are met: -% 1. Redistributions of source code must retain the above copyright -% notice, this list of conditions and the following disclaimer. -% 2. Redistributions in binary form must reproduce the above copyright -% notice, this list of conditions and the following disclaimer in the -% documentation and/or other materials provided with the distribution. -% -% THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -% ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -% ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -% FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -% DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -% OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -% HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -% OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -% SUCH DAMAGE. - -%%% -% Usage: gs -DNODISPLAY -q -- render.ps fontname dlstring specinfo dpi -% Then, it will read standard input to get: -% pointsize -% charset - -% Example: -% % gs -DNODISPLAY -q -- render.ps Helvetica "(phvr.gsf) run" \ -% > ".5 ExtendFont" 300 -% GS> 10 -% GS> 97 98 99 - -/TeXDict currentdict def % needed by dotlessj.pro - -%% -% -% Standard file definitions - -/.stdin where { pop } { /.stdin (%stdin) (r) file def } ifelse - -/bad-stdout false def -/.stdout where - { pop } - { { /.stdout (%stdout) (w) file def } stopped - { /bad-stdout true def } - if - } ifelse - -/bad-stderr false def -/.stderr where - { pop } - { { /.stderr (%stderr) (w) file def } stopped - { /bad-stderr true def } - if - } ifelse - -%% -% -% Define some routines first - -% (string) fatal - -% Print string to stderr and quit. - -/fatal - bad-stderr - {{ - (render.ps: ) exch concatstrings - print flush 1 .quit - }} - {{ - (render.ps: ) exch concatstrings - .stderr exch writestring .stderr flushfile 1 .quit - }} - ifelse -bind def - -% (string) brun - -% Load a font in .pfb format. - -/brun - { - (r) file false /PFBDecode filter cvx exec - } -bind def - -% (exec) getbbox - -% Get bounding box of the executable object and save it in char-urx, -% char-ury, etc. - -/getbbox - { - gsave - nulldevice - erasepage - newpath - exec - pathbbox % returns llx lly urx ury - /char-ury exch ceiling cvi def - /char-urx exch ceiling cvi def - /char-lly exch floor cvi def - /char-llx exch floor cvi def - grestore - } -bind def - -% - drawfontbbox - -% Draw the font's bbox. - -/drawfontbbox - { - currentfont /FontBBox get - dup dup 0 get exch 1 get currentfont /FontMatrix get transform moveto - dup dup 0 get exch 3 get currentfont /FontMatrix get transform lineto - dup dup 2 get exch 1 get currentfont /FontMatrix get transform lineto - dup 2 get exch 3 get currentfont /FontMatrix get transform lineto - } -bind def - -% (exec) mkbboxdev - -% Get bounding box of the executable object and make a device a few -% pixels larger on each side. If pathbbox fails for the object, -% then use the font's bbox. - -/mkbboxdev - { - getbbox - - char-llx char-urx sub round 0 eq char-lly char-ury sub round 0 eq or - { - {drawfontbbox} getbbox - } - if - - matrix - char-urx char-llx sub 4 add % width - dup /width exch def - char-ury char-lly sub 4 add % height - dup /height exch def - <ff 00> - makeimagedevice setdevice - 2 char-llx sub 2 char-lly sub translate - } -bind def - -%% -% -% These may be called by the "specinfo" string. - -/usefontbbox false def - -% These do things to a transformation array; called by entries in psfonts.map. -% -/ObliqueSlant {dup sin exch cos div neg} bind def -/SlantFont {font-size mul add} def -/ExtendFont {3 -1 roll mul exch} def -/ReEncodeFont {/Encoding exch def} def - -% Define writeppmfile, if it's not provided, or if the symbol .stdout is not -% available. - -/our-writeppmfile - - bad-stdout - systemdict /writeppmfile known not - or - {{ - (P4\n) print - width =string cvs print - ( ) print - height =string cvs print - (\n) print - - width 7 add 8 div cvi string - 0 1 height 1 sub - { - currentdevice exch 2 index copyscanlines - print - } - for - pop % discard string - }} - {{ - .stdout currentdevice writeppmfile - }} - ifelse -def - - -%% -% -% Main program begins now. Just interpret it. - -% Get arguments. - -shellarguments not - { - (You must provide arguments to the shell!\n) fatal - } -if - -/dpi exch cvr def -/specinfo exch def -/dlstring exch def -/fontname exch def - -% Return the gs version number to the calling program. - -(V ) print revision = - -% Open the font. - -dlstring () ne - { - dlstring cvx exec - Fontmap fontname cvn known - FontDirectory fontname cvn known or - } - { - Fontmap fontname cvn known - } -ifelse - -not - { - (font ) fontname concatstrings ( is not defined.\n) concatstrings - fatal - } -if - -% Get arguments from stdin. Just leave the character list on the stack. - -/font-size - .stdin 20 string readline pop cvr % get pointsize - 72.27 div dpi mul % let's work in (TeX) points -def -[ .stdin 1024 string readline pop cvx exec ] % character list - -% Define the font, and make it current. - - % Get the font. -fontname cvlit findfont - % Copy over the font dictionary to make it writable; - % this makes ReEncodeFont easier, and is needed for dotless j processing. - dup length 1 add dict begin - {1 index /FID ne {def}{pop pop} ifelse} forall - % Now do the transformations specified in psfonts.map. - [ font-size 0 specinfo cvx exec 0 exch font-size 0 0 ] - % End the current dictionary, and make it a font. - /TargetFont currentdict end definefont - % Apply the tranformation matrix and make the font current. -exch makefont dup /TargetFont exch def setfont - -% If the font's bounding box is zero, then do not use it. - -usefontbbox - { currentfont /FontBBox get - true exch {0 eq and} forall - {/usefontbbox false def}if - } -if - -% If we are to use the font's bounding box, then get it and transform it. - -usefontbbox - { - {drawfontbbox} mkbboxdev - } -if - -% Begin loop over characters. - - { - /charno exch def - /charstring 1 string dup 0 charno put def - /charwidth charstring stringwidth pop def - - % Get the character's bounding box. This also makes the device. - usefontbbox not - { - { 0 0 moveto charstring true charpath } mkbboxdev - } - if - - % Print the metric info. - (#^ ) print - charno =string cvs print - ( ) print - char-llx =string cvs print - ( ) print - char-lly =string cvs print - ( ) print - char-urx =string cvs print - ( ) print - char-ury =string cvs print - ( ) print - charwidth =string cvs print - (\n) print - - % Now write the bitmap. - erasepage 0 0 moveto - charstring show - our-writeppmfile - } -forall |