home *** CD-ROM | disk | FTP | other *** search
- %! Return a list of all fonts on the target printer,
- %% both in memory and on disk. Also return type and location.
- %% DAW 3/2/94, Tim Mac 2/26/95, Kras 11/17/94
-
- /Zstr { 0 1 =string length 1 sub { =string exch 0 put } for } def % Clean up the scratch string.
-
- /ListFonts % returns to host for each font: font name (Str255), font type (byte), location (byte)
- % type: 0=composite,1=adobe,2=truetype,3=other
- % location: 0-7=distinguishable disk,8=non-distinguishable disk,
- % 9=RAM, 10=ROM, 11=unknown (memory)
- {
- 6 dict begin /s 1 string def % make a 1-byte string for returning single bytes
- FontD % first, let's do the fonts in memory
- {
- excludeDotNames{ % Exclude dot names if it's a Japanese printer
- 1 index Zstr =string cvs % Convert the literal name into a string thing
- (.) search{ % looking for the dot
- 5{pop}repeat false % found it, so skip this one
- }{pop true}ifelse % didn't find it, so do this one
- }{true}ifelse % not a Japanese printer, so do all fonts
- {
- exch dup /n exch def % switch the name and the font dict around on the stack
- Zstr =string cvs dup length % determine name length
- s exch 0 exch put s print print % return length byte and name (it's a Str255!)
- dup /fd exch def/FontType get % get the font type outta the font dict
- dup dup 1 eq exch 5 eq or % is it type 1 or type 5?
- {pop s 0 1 put} % then call 'em both a type 1
- {dup 42 eq % else, is it type 42 (truetype)?
- {pop s 0 2 put} % then call it a type 2
- {dup 0 eq % else, is it a type 0 (composite)?
- {pop s 0 0 put} % then call it a type 0
- {4 eq % else, is it a type 4 (was loaded from disk)
- {s 0 1 put} % then call it a type 1
- {s 0 3 put} % else, call it a type 3 (other)
- ifelse}ifelse}ifelse}ifelse % catch up on ifelses
- s print % return type byte
- fd /inRAM known % if it's in RAM
- {s 0 9 put} % return 9=RAM
- { AppleLW % else, is it an Apple printer?
- {n IsKnownROMFont {s 0 10 put} % yes, it is, so call mr. special, is it ROM?
- {s 0 9 put}ifelse % no, it must be RAM
- }{ fd /CharStrings 2 copy known % not an Apple printer, look at CharStrings
- {get dup type/dicttype eq % is it a dictionary?
- {{type/stringtype eq exch pop % yes, ok, does it have strings in it
- exit}forall
- {s 0 9 put}{s 0 10 put}ifelse % yes=RAM, no=ROM
- }{pop s 0 11 put}ifelse % if CharStrings is not a dict, i give up
- }{pop pop s 0 11 put}ifelse % if there is no dict, i give up
- }ifelse}ifelse s print % output our final conclusion
- }if
- }forall
- systemdict /filenameforall known
- { % ok, now let's get frisky with the disky
- version cvi 47 le % if we can't distinguish disks...
- {
- (fonts/*) % for all files in the fonts directory...
- {dup dup length 6 sub 6 exch % strip off 6 bytes for "fonts/"
- getinterval % from file name, leaving only font name
- dup length s exch 0 exch put % determine length
- s print print % return length byte and name (Str255)
- (r) file % now open font file for reading
- /ss save def
- dup % dup the font file
- {dup token % start loop, copy file obj, did we get a token?
- {/FontType eq % yes we did, is the token "FontType" ?
- { token pop exit}if % yes it is, so get next token and exit loop
- }{pop 3 exit}ifelse % no more tokens, so push 3 and exit loop
- }loop % end of loop
- ss restore % restore the memory. If not, will run out of memory if there are lot of disk fonts
- dup 1 eq{s exch 0 exch put s print} % if it's type 1, return a 1
- {dup /type42known eq % else, if it's a boolean called "type42known"
- 1 index 42 eq or % or the number 42
- {pop s 0 2 put s print} % then return a 2
- {dup 0 eq{pop s 0 0 put s print} % else, if it's a 0, return 0
- {dup 3 eq{pop s 0 3 put s print} % else, if it's a 3, return 3
- {dup 4 eq{pop s 0 1 put s print} % else, if it's a 4, return 1
- {pop s 0 3 put s print}ifelse % else, return 3, for unknown
- }ifelse}ifelse}ifelse}ifelse
- closefile
-
- s 0 8 put s print % return location = 8 for non-distinguishable disk
- } 90 string filenameforall
- }{ % else, if we can distinguish disks...
- /n (%disk_%fonts/*) def % define the name prefix with placeholder for id
- 0 1 7{/d exch def % loop thru scsi id's 0 - 7
- n 5 d s cvs putinterval % put the id in the placeholder
- n{
- excludeDotNames{ % Exclude dot names if it's a Japanese printer
- dup (.) search{ % looking for the dot
- 4{pop}repeat false % found it, so skip this one
- }{dup length 23 eq
- {13 10 getinterval (NotDefFont) ne} % don't display NotDefFont
- {pop true} ifelse
- }ifelse % didn't find it, so do this one
- }{true}ifelse % not a Japanese printer, so do all fonts
- {
- dup dup length % get length, save copy of complete name
- 13 sub 13 exch getinterval % strip off the name prefix
- dup dup cvn /tfn exch def
- length s exch 0 exch put % determine length
- s print print % return length byte and name (Str255)
- (r) file % now open font file for reading
- /ss save def % save for restore later on
- dup % dup the font file
- {dup {token} % start loop, copy file obj, did we get a token?
- stopped {1 true} if % Prevend from getting error when reading a binary file
- {/FontType eq % yes we did, is the token "FontType" ?
- { token pop exit}if % yes it is, so get next token and exit loop
- }{pop {tfn findfont /FontType get } stopped
- {pop 3 } if exit}ifelse % no FontType token then get FontType by findfont
- % Some fonts dont have FontType token because it copies other fonts
- }loop % if invalidfont (bad font) still display so that users can delete it
- ss restore % if don't restore will run out of memory of lot of disk fonts
- % end of loop
- dup 1 eq{s exch 0 exch put s print} % if it's type 1, return a 1
- {dup /type42known eq % else, if it's a boolean called "type42known"
- 1 index 42 eq or % or the number 42
- {pop s 0 2 put s print} % then return a 2
- {dup 0 eq{pop s 0 0 put s print} % else, if it's a 0, return 0
- {dup 3 eq{pop s 0 3 put s print} % else, if it's a 3, return 3
- {dup 4 eq{pop s 0 1 put s print} % else, if it's a 4, return 1
- {pop s 0 3 put s print}ifelse % else, return 3, for unknown
- }ifelse}ifelse}ifelse}ifelse
- closefile
- s 0 d put s print % return location = d for disk id
- }if
- } 90 string filenameforall
- }for
- }ifelse end
- } if
- }def
-
- /excludeDotNames statusdict begin product end
- dup (LaserWriter II NTX) eq statusdict begin version end (50.5) eq and
- 1 index (LaserWriter Select 610) eq or 1 index (LaserWriter 16/600 PS-J)
- eq or 1 index (Color LaserWriter 12/600 PS-J)
- eq or exch dup (PC-PR3000PS/4) eq exch (PC-PR3000PS/4F) eq or or def
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- /AppleLW
- statusdict begin product end % Get the product name string
- (LaserWriter) search % Does it contain this famous name?
- { pop pop pop true }
- { false exch % Check for LW Pro 400/405, project names, etc…
- [
- (PC-PR3000PS/4)
- (PC-PR3000PS/4F)
- ]
- { 1 index eq 3 -1 roll or exch } forall pop
- { true }
- { false } ifelse } ifelse
- def
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- /myProduct statusdict begin product
- Zstr =string cvs dup length 1 sub 0 exch 1 exch
- {
- 1 index exch 2 copy get dup 32 eq exch (/) 0 get eq or
- {(_)0 get put}{pop pop}ifelse
- }for
- length dup =string exch (_) putinterval
- 1 add =string exch version end dup length
- 2 index add 4 1 roll putinterval
- dup =string exch 0 exch getinterval
- exch string dup 0 4 -1 roll putinterval def
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % To exclude these RAM fonts for the NEX, Griffin-J and LW Pro 400/405
- statusdict begin product end dup dup
- (LaserWriter Select 610) eq exch (LaserWriter 16/600 PS-J) eq or exch (Color LaserWriter 12/600 PS-J) eq or
- { FontDirectory dup length dup
- 35 gt {1 add dict /FontD exch def
- {
- 1 index dup (NotDefFont) eq
- [(ChuGothicBBB-Medium)
- (ChuGothicBBB-Medium-Mono)
- (GothicBBB-Medium-83pv-RKSJ-H)
- (GothicBBB-Medium-83pv-SuppA-H)
- (GothicBBB-Medium-83pv-SuppB-H)
- (GothicBBB-Medium-RKSJ-UserGaiji)
- (HeiseiKakuGothic-W5)
- (HeiseiMincho-W3)
- (HonMincho-M)
- (MaruGothic-M)
- (Osaka)
- (Osaka-Mono)
- (PCHelvetica)
- (PCTimes-Roman)
- (Ryumin-Light-83pv-RKSJ-H)
- (Ryumin-Light-83pv-SuppA-H)
- (Ryumin-Light-83pv-SuppB-H)
- (Ryumin-Light-KL)
- (Ryumin-Light-KL-Mono)
- (Ryumin-Light-RKSJ-UserGaiji)] {2 index eq or} forall
- {pop pop pop} {pop FontD 3 1 roll put}ifelse
- } forall
- } { pop /FontDirectory exch def } ifelse
- }
- { statusdict begin product end dup (PC-PR3000PS/4) eq exch (PC-PR3000PS/4F) eq or
- { /FontD 1 dict def /disk? false def
- (*)
- {dup (NotDefFont) eq
- {pop}
- {dup (GothicBBB-Medium-83pv-RKSJ-H) eq
- [ (GothicBBB-Medium-83pv-SuppA-H)
- (GothicBBB-Medium-83pv-SuppB-H)
- (GothicBBB-Medium-Add-H)
- (GothicBBB-Medium-Add-RKSJ-H)
- (GothicBBB-Medium-Add-RKSJ-V)
- (GothicBBB-Medium-Add-SuppA-H)
- (GothicBBB-Medium-Add-SuppA-V)
- (GothicBBB-Medium-Add-SuppB-HV)
- (GothicBBB-Medium-Add-V)
- (GothicBBB-Medium-EUC-H)
- (GothicBBB-Medium-EUC-V)
- (GothicBBB-Medium-Ext-H)
- (GothicBBB-Medium-Ext-RKSJ-H)
- (GothicBBB-Medium-Ext-RKSJ-V)
- (GothicBBB-Medium-Ext-SuppA-H)
- (GothicBBB-Medium-Ext-SuppA-V)
- (GothicBBB-Medium-Ext-SuppB-HV)
- (GothicBBB-Medium-Ext-V)
- (GothicBBB-Medium-H)
- (GothicBBB-Medium-NWP-H)
- (GothicBBB-Medium-NWP-V)
- (GothicBBB-Medium-RKSJ-H)
- (GothicBBB-Medium-RKSJ-UserGaiji)
- (GothicBBB-Medium-RKSJ-V)
- (GothicBBB-Medium-SuppA-H)
- (GothicBBB-Medium-SuppA-V)
- (GothicBBB-Medium-SuppB-HV)
- (GothicBBB-Medium-V)
- (Mincho-PC-Hiragana)
- (Mincho-PC-Katakana)
- (PCHelvetica)
- (PCTimes-Roman)
- (Ryumin-Light-83pv-RKSJ-H)
- (Ryumin-Light-83pv-SuppA-H)
- (Ryumin-Light-83pv-SuppB-H)
- (Ryumin-Light-Add-H)
- (Ryumin-Light-Add-RKSJ-H)
- (Ryumin-Light-Add-RKSJ-V)
- (Ryumin-Light-Add-SuppA-H)
- (Ryumin-Light-Add-SuppA-V)
- (Ryumin-Light-Add-SuppB-HV)
- (Ryumin-Light-Add-V)
- (Ryumin-Light-EUC-H)
- (Ryumin-Light-EUC-V)
- (Ryumin-Light-Ext-H)
- (Ryumin-Light-Ext-RKSJ-H)
- (Ryumin-Light-Ext-RKSJ-V)
- (Ryumin-Light-Ext-SuppA-H)
- (Ryumin-Light-Ext-SuppA-V)
- (Ryumin-Light-Ext-SuppB-HV)
- (Ryumin-Light-Ext-V)
- (Ryumin-Light-H)
- (Ryumin-Light-NWP-H)
- (Ryumin-Light-NWP-V)
- (Ryumin-Light-RKSJ-H)
- (Ryumin-Light-RKSJ-UserGaiji)
- (Ryumin-Light-RKSJ-V)
- (Ryumin-Light-SuppA-H)
- (Ryumin-Light-SuppA-V)
- (Ryumin-Light-SuppB-HV)
- (Ryumin-Light-V) ]
- { 2 index eq or } forall
- { dup (FutoMinA101-Bold-83pv-RKSJ-H) eq
- [ (FutoMinA101-Bold-83pv-RKSJ-H)
- (FutoMinA101-Bold-83pv-SuppA-H)
- (FutoMinA101-Bold-83pv-SuppB-H)
- (FutoMinA101-Bold-Add-RKSJ-V)
- (FutoMinA101-Bold-Add-RKSJ-H)
- (FutoMinA101-Bold-Add-SuppA-V)
- (FutoMinA101-Bold-Add-SuppA-H)
- (FutoMinA101-Bold-Add-SuppB-HV)
- (FutoMinA101-Bold-Add-H)
- (FutoMinA101-Bold-Add-V)
- (FutoMinA101-Bold-EUC-H)
- (FutoMinA101-Bold-EUC-V)
- (FutoMinA101-Bold-Ext-RKSJ-V)
- (FutoMinA101-Bold-Ext-RKSJ-H)
- (FutoMinA101-Bold-Ext-SuppA-H)
- (FutoMinA101-Bold-Ext-SuppA-V)
- (FutoMinA101-Bold-Ext-SuppB-HV)
- (FutoMinA101-Bold-Ext-H)
- (FutoMinA101-Bold-Ext-V)
- (FutoMinA101-Bold-NWP-V)
- (FutoMinA101-Bold-NWP-H)
- (FutoMinA101-Bold-RKSJ-UserGaiji)
- (FutoMinA101-Bold-RKSJ-V)
- (FutoMinA101-Bold-RKSJ-H)
- (FutoMinA101-Bold-SuppA-V)
- (FutoMinA101-Bold-SuppA-H)
- (FutoMinA101-Bold-SuppB-HV)
- (FutoMinA101-Bold-H)
- (FutoMinA101-Bold-V)
- (FutoGoB101-Bold-83pv-RKSJ-H)
- (FutoGoB101-Bold-83pv-SuppA-H)
- (FutoGoB101-Bold-83pv-SuppB-H)
- (FutoGoB101-Bold-Add-RKSJ-V)
- (FutoGoB101-Bold-Add-RKSJ-H)
- (FutoGoB101-Bold-Add-SuppA-V)
- (FutoGoB101-Bold-Add-SuppA-H)
- (FutoGoB101-Bold-Add-SuppB-HV)
- (FutoGoB101-Bold-Add-H)
- (FutoGoB101-Bold-Add-V)
- (FutoGoB101-Bold-EUC-H)
- (FutoGoB101-Bold-EUC-V)
- (FutoGoB101-Bold-Ext-RKSJ-V)
- (FutoGoB101-Bold-Ext-RKSJ-H)
- (FutoGoB101-Bold-Ext-SuppA-V)
- (FutoGoB101-Bold-Ext-SuppA-H)
- (FutoGoB101-Bold-Ext-SuppB-HV)
- (FutoGoB101-Bold-Ext-V)
- (FutoGoB101-Bold-Ext-H)
- (FutoGoB101-Bold-NWP-H)
- (FutoGoB101-Bold-NWP-V)
- (FutoGoB101-Bold-RKSJ-UserGaiji)
- (FutoGoB101-Bold-RKSJ-V)
- (FutoGoB101-Bold-RKSJ-H)
- (FutoGoB101-Bold-SuppA-V)
- (FutoGoB101-Bold-SuppA-H)
- (FutoGoB101-Bold-SuppB-HV)
- (FutoGoB101-Bold-V)
- (FutoGoB101-Bold-H)
- (Jun101-Light-83pv-RKSJ-H)
- (Jun101-Light-83pv-SuppA-H)
- (Jun101-Light-83pv-SuppB-H)
- (Jun101-Light-Add-RKSJ-H)
- (Jun101-Light-Add-RKSJ-V)
- (Jun101-Light-Add-SuppA-H)
- (Jun101-Light-Add-SuppA-V)
- (Jun101-Light-Add-SuppB-HV)
- (Jun101-Light-Add-H)
- (Jun101-Light-Add-V)
- (Jun101-Light-EUC-V)
- (Jun101-Light-EUC-H)
- (Jun101-Light-Ext-RKSJ-V)
- (Jun101-Light-Ext-RKSJ-H)
- (Jun101-Light-Ext-SuppA-H)
- (Jun101-Light-Ext-SuppA-V)
- (Jun101-Light-Ext-SuppB-HV)
- (Jun101-Light-Ext-H)
- (Jun101-Light-Ext-V)
- (Jun101-Light-NWP-V)
- (Jun101-Light-NWP-H)
- (Jun101-Light-RKSJ-UserGaiji)
- (Jun101-Light-RKSJ-H)
- (Jun101-Light-RKSJ-V)
- (Jun101-Light-SuppA-H)
- (Jun101-Light-SuppA-V)
- (Jun101-Light-SuppB-HV)
- (Jun101-Light-H)
- (Jun101-Light-V)
- (PCCenturyOldStyle-Regular)
- (PCHelvetica-Bold)
- (PCHelveticaNeue-Medium)
- (PCJun101-Light) ]
- { 2 index eq or } forall
- { pop } { FontD exch cvn 1 dict dup /FontType 0 put put } ifelse }
- {dup length 13 add string dup 0 (%disk?%fonts/) putinterval dup
- 13 3 index putinterval {/disk? true def pop pop} =string filenameforall
- disk? not { FontD exch cvn 1 dict dup /FontType 1 put put } if
- } ifelse
- } ifelse /disk? false def
- } 100 string /Font resourceforall
- } {/FontD FontDirectory def } ifelse
-
- } ifelse
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- /FontGroupDict 120 dict dup 3 1 roll def begin
-
- % Group 0 - in the original, classic LW and all subsequent LWs
- [
- /Courier
- /Courier-Bold
- /Courier-Oblique
- /Courier-BoldOblique
- /Helvetica
- /Helvetica-Bold
- /Helvetica-Oblique
- /Helvetica-BoldOblique
- /Times-Roman
- /Times-Bold
- /Times-Italic
- /Times-BoldItalic
- /Symbol
- ] {0 def}forall
-
- % Group 1 - in the LW Plus and all subsequent LWs (see also: Group 5)
- [
- /AvantGarde-Book
- /AvantGarde-Demi
- /AvantGarde-BookOblique
- /AvantGarde-DemiOblique
- /Bookman-Light
- /Bookman-Demi
- /Bookman-LightItalic
- /Bookman-DemiItalic
- /NewCenturySchlbk-Roman
- /NewCenturySchlbk-Bold
- /NewCenturySchlbk-Italic
- /NewCenturySchlbk-BoldItalic
- /Palatino-Roman
- /Palatino-Bold
- /Palatino-Italic
- /Palatino-BoldItalic
- /ZapfChancery-MediumItalic
- ] {1 def}forall
-
- % Group 2 - in the LW Plus and all subsequent LWs except IIg, IIf
- [
- /ZapfDingbats
- ] {2 def}forall
-
- % Group 3 - in some LWs for HP PCL emulation
- [
- /Emulatorfont
- ] {3 def}forall
-
- % Group 4 - in original Personal LW NT only (so far)
- [
- /Emulatorfont-Bold
- ] {4 def}forall
-
- % Group 5 - separated from Group 1 because of the LW Pro 400/405
- [
- /Helvetica-Narrow
- /Helvetica-Narrow-Bold
- /Helvetica-Narrow-Oblique
- /Helvetica-Narrow-BoldOblique
- ] {5 def}forall
-
- % Group 6 - kanji ROM fonts found in the LW Pro 400/405
- [
- /GothicBBB-Medium-83pv-RKSJ-H
- /GothicBBB-Medium-83pv-SuppA-H
- /GothicBBB-Medium-83pv-SuppB-H
- /GothicBBB-Medium-Add-H
- /GothicBBB-Medium-Add-RKSJ-H
- /GothicBBB-Medium-Add-RKSJ-V
- /GothicBBB-Medium-Add-SuppA-H
- /GothicBBB-Medium-Add-SuppA-V
- /GothicBBB-Medium-Add-SuppB-HV
- /GothicBBB-Medium-Add-V
- /GothicBBB-Medium-EUC-H
- /GothicBBB-Medium-EUC-V
- /GothicBBB-Medium-Ext-H
- /GothicBBB-Medium-Ext-RKSJ-H
- /GothicBBB-Medium-Ext-RKSJ-V
- /GothicBBB-Medium-Ext-SuppA-H
- /GothicBBB-Medium-Ext-SuppA-V
- /GothicBBB-Medium-Ext-SuppB-HV
- /GothicBBB-Medium-Ext-V
- /GothicBBB-Medium-H
- /GothicBBB-Medium-NWP-H
- /GothicBBB-Medium-NWP-V
- /GothicBBB-Medium-RKSJ-H
- /GothicBBB-Medium-RKSJ-UserGaiji
- /GothicBBB-Medium-RKSJ-V
- /GothicBBB-Medium-SuppA-H
- /GothicBBB-Medium-SuppA-V
- /GothicBBB-Medium-SuppB-HV
- /GothicBBB-Medium-V
- /Mincho-PC-Hiragana
- /Mincho-PC-Katakana
- /PCHelvetica
- /PCTimes-Roman
- /Ryumin-Light-83pv-RKSJ-H
- /Ryumin-Light-83pv-SuppA-H
- /Ryumin-Light-83pv-SuppB-H
- /Ryumin-Light-Add-H
- /Ryumin-Light-Add-RKSJ-H
- /Ryumin-Light-Add-RKSJ-V
- /Ryumin-Light-Add-SuppA-H
- /Ryumin-Light-Add-SuppA-V
- /Ryumin-Light-Add-SuppB-HV
- /Ryumin-Light-Add-V
- /Ryumin-Light-EUC-H
- /Ryumin-Light-EUC-V
- /Ryumin-Light-Ext-H
- /Ryumin-Light-Ext-RKSJ-H
- /Ryumin-Light-Ext-RKSJ-V
- /Ryumin-Light-Ext-SuppA-H
- /Ryumin-Light-Ext-SuppA-V
- /Ryumin-Light-Ext-SuppB-HV
- /Ryumin-Light-Ext-V
- /Ryumin-Light-H
- /Ryumin-Light-NWP-H
- /Ryumin-Light-NWP-V
- /Ryumin-Light-RKSJ-H
- /Ryumin-Light-RKSJ-UserGaiji
- /Ryumin-Light-RKSJ-V
- /Ryumin-Light-SuppA-H
- /Ryumin-Light-SuppA-V
- /Ryumin-Light-SuppB-HV
- /Ryumin-Light-V
- ] {6 def} forall
-
- % Group 7 - For Color LaserWriter 12/600 PS
- [
- /Helvetica-Condensed
- /Helvetica-Condensed-Bold
- /Helvetica-Condensed-Oblique
- /Helvetica-Condensed-BoldObl
-
- ] {7 def}forall
-
- end
-
- /ProductVersionDict 120 dict dup 3 1 roll def begin
-
- /LaserWriter_23.0 (10000000) def % Group 0. Total: 13 fonts in ROM
-
- /LaserWriter_Plus_38.0 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_Plus_42.2 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
-
- /LaserWriter_II_NT_47.0 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_II_NTX_47.0 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_II_NTX_50.5 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_II_NTX_51.8 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
-
- /LaserWriter_Personal_NT_51.8 (11111100) def % Groups 0,1,2,3,4,5. Total: 37 fonts in ROM
- /LaserWriter_Personal_NTR_2010.129 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_Personal_320_2013.112 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_4_600_PS_2014.107 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
-
- /LaserWriter_IIf_2010.113 (11010100) def % Groups 0,1,3,5. Total: 35 fonts in ROM
- /LaserWriter_IIg_2010.111 (11010100) def % Groups 0,1,3,5. Total: 35 fonts in ROM
- /LaserWriter_IIg_2010.113 (11010100) def % Groups 0,1,3,5. Total: 35 fonts in ROM
- /LaserWriter_IIg_2010.130 (11110100) def % Groups 0,1,2,3,5. Total: 36 fonts in ROM
-
- /PC-PR3000PS_4_2011.110 (10000110) def % Groups 0,5,6. Total: 79 fonts in ROM
- /PC-PR3000PS_4F_2011.110 (10000110) def % Groups 0,5,6. Total: 79 fonts in ROM
-
- /LaserWriter_Pro_600_2010.130 (11110100) def % Groups 0,1,2,3,5. Total: 36 fonts in ROM
- /LaserWriter_Pro_630_2010.130 (11110100) def % Groups 0,1,2,3,5. Total: 36 fonts in ROM
-
- /LaserWriter_Select_360_2013.112 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_Select_360f_2013.112 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_Select_610_2013.112 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
-
- /LaserWriter_Pro_810_2011.113 (11110100) def % Groups 0,1,2,3,5. Total: 36 fonts in ROM
- /LaserWriter_Pro_810f_2011.113 (11110100) def % Groups 0,1,2,3,5. Total: 36 fonts in ROM
-
- /LaserWriter_16_600_PS_2014.106 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_16_600_PS_Fax_2014.106 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_16_600_PS-J_2014.106 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
-
- /LaserWriter_12_640_PS_2015.105 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_12_640_PS_Fax_2015.105 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
- /LaserWriter_12_640_PS-J_2015.105 (11100100) def % Groups 0,1,2,5. Total: 35 fonts in ROM
-
- /Color_LaserWriter_12_600_PS_2014.108 (11100101) def % Groups 0,1,2,5,7 Total: 39 fonts in ROM
- /Color_LaserWriter_12_600_PS-J_2014.108 (11100101) def % Groups 0,1,2,5,7 Total: 39 fonts in ROM
- /Color_LaserWriter_12_660_PS_2014.108 (11100101) def % Groups 0,1,2,5,7 Total: 39 fonts in ROM
-
- end
-
- /IsKnownROMFont { % assume it's an Apple printer (not 3rd party)
- FontGroupDict exch 2 copy known
- { get ProductVersionDict myProduct
- cvn 2 copy known % izzit a known model?
- { get } { pop pop (11100100) } ifelse % if not, assume 35 standard fonts
- exch get (1) 0 get eq
- } { pop pop false } ifelse
- } def
-
- ListFonts
-