From: lilianstrom@krang.fnal.gov (If its too loud,  You're too old)
Subject: Error with user written font
Reply-To: lilianstrom@dcd00.fnal.gov
Organization: Fermilab Special Projects Group
Distribution: gnu
Date: Tue, 29 Sep 1992 19:27:43 GMT

We have here a user written type 3 font that GhostScript cannot handle. It does
work on most modern PostScript printers and other PostScript previewers.  The
error and file follow. Any help or advice to solve this would be appreciated.

			al
------------------------------error------------------------------------------
dcdsv0.al> gs big_spg_logo.ps
Initializing... done.
Error: /invalidfont in -dicttype-
Operand stack:
    -savetype-  /Logo  -dicttype-  /Logo
Execution stack:
    %interp_exit    --nostringval--  --nostringval--  false  --nostringval-- 
--nostringval--  false  --nostringval--  --nostringval--  --nostringval-- 
--nostringval--  --nostringval--
Dictionary stack:
    461/479  6/200  12/12
Ghostscript 2.5.1 (9/11/92)
  Copyright (C) 1990, 1992 Aladdin Enterprises, Menlo Park, CA.
  All rights reserved.
Distributed by Free Software Foundation, Inc.
Ghostscript comes with NO WARRANTY: see the file LICENSE for details.

-------------------------------file------------------------------------------
%!
/font {findfont exch scalefont setfont} bind def
% Circle-drawing procedures from Blue book 
save
%% Begining of Logo font definition
9 dict dup begin
/FontType 3 def
/FontName (Logo) cvn def
/FontMatrix [0.001 0 0 0.001 0 0] def
/Encoding 256 array def
0 1 255 { Encoding exch /.notdef put } bind for
Encoding
dup  70 /Fermi    put
pop
/CharProcs 7 dict dup begin
/Fermi {
0 setlinecap
0 setlinejoin
1 setlinewidth
1000 0 0 0 1000 1000 setcachedevice
 475     887.5  moveto
      0   80.88 rlineto
-150          0 rlineto
      0  -93.38 rlineto
-155.72       0 rlineto
      0 -150    rlineto
 154.46       0 rlineto
 262.5   737.5  62.5  348.46 270 arcn
-230.88       0 rlineto
      0 -150    rlineto
 230.88       0 rlineto
 262.5   737.5  212.5  270 360 arc
  50          0 rlineto
 737.5   737.5  212.5  180 270 arc
 230.88       0 rlineto
      0  150    rlineto
-230.88       0 rlineto
 737.5   737.5  62.5  270 191.54 arcn
 154.46       0 rlineto
      0  150    rlineto
-155.72       0 rlineto
      0   93.38 rlineto
-150          0 rlineto
      0  -80.88 rlineto fill
 525     112.5  moveto
      0  -80.88 rlineto
 150          0 rlineto
      0   93.38 rlineto
 155.72       0 rlineto
      0  150    rlineto
-154.46       0 rlineto
 737.5   262.5  62.5  168.46 90 arcn
 230.88       0 rlineto
      0  150    rlineto
-230.88       0 rlineto
 737.5   262.5  212.5  90 180 arc
 -50          0 rlineto
 262.5   262.5  212.5  0 90 arc
-230.88       0 rlineto
      0 -150    rlineto
 230.88       0 rlineto
 262.5   262.5  62.5  90 11.54 arcn
-154.46       0 rlineto
      0 -150    rlineto
 155.72       0 rlineto
      0  -93.38 rlineto
 150          0 rlineto
      0   80.88 rlineto fill
} bind def
end def
/BuildChar {
0
begin
exch begin
Encoding exch get
CharProcs exch get
end
exec
end
} bind def
/BuildChar load 0
6 dict dup begin
end put
end
/Logo exch definefont pop

183 620 translate

0 setgray
0 0 150 0 360 arc fill   % black ring
1 setgray                 % change to white for donut and letters
0 0 146 0 360 arc fill     % cut out white inside
0 setgray
0 0 142 0 360 arc fill   % black ring
1 setgray                 % change to white for donut and letters
0 0 105.5   0 360 arc fill   % cut out white inside
0 setgray
0 0 101.5 0 360 arc fill   % black ring
1 setgray                 % change to white for donut and letters
0 0 97.5 0 360 arc fill     % cut out white inside
 
/outsidecircletext
  { circtextdict begin
	  /radius exch def
	  /centerangle exch def
	  /ptsize exch def
	  /str exch def
	  /xradius radius ptsize 4 div add def

	  gsave
	    centerangle str findhalfangle add rotate
	    str
		  { /charcode exch def
		    ( ) dup 0 charcode put outsideplacechar
		  } forall
	  grestore
	end
  } def
  
/insidecircletext
  { circtextdict begin
	  /radius exch def  /centerangle exch def
	  /ptsize exch def  /str exch def
	  
	  /xradius radius ptsize 3 div sub def
	  gsave
	    centerangle str findhalfangle sub rotate
	    str
		  { /charcode exch def
		    ( ) dup 0 charcode put insideplacechar
		  } forall
	  grestore
	end
  } def
  
/circtextdict 16 dict def
circtextdict begin
  /findhalfangle
	{ stringwidth pop 2 div
	  2 xradius mul pi mul div 360 mul
	} def
	
/outsideplacechar
  { /char exch def
	/halfangle char findhalfangle def
	gsave
	  halfangle neg rotate
	  radius 0 translate
	  -90 rotate
	  char stringwidth pop 2 div neg 0 moveto
	  char show
	grestore
	halfangle 2 mul neg rotate
  } def
  
/insideplacechar
  { /char exch def
	/halfangle char findhalfangle def
	gsave
	  halfangle rotate
	  radius 0 translate
	  90 rotate
	  char stringwidth pop 2 div neg 0 moveto
	  char show
	grestore
	halfangle 2 mul rotate
  } def
  
/pi 3.1415923 def
end

30/Times-Bold font
(Distributed Computing)
8 90 115 outsidecircletext
28/Times-Bold font
(Special Projects Group)
7 270 134 insidecircletext
0 setgray
150/Logo font
-75 -75 translate
0 0 moveto
(F) show
restore
showpage

Al Lilianstrom
Fermi National Accelerator Laboratory
Batavia, Illinois
lilianstrom@fndcd.fnal.gov

My opinion.  Not the DOE's, URA's, or anyone else at Fermilab

Newsgroups: gnu.ghostscript.bug