eideticpdf 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. data/fonts/AntiqueOlive-Bold.afm +406 -0
  2. data/fonts/AntiqueOlive-Bold.inf +27 -0
  3. data/fonts/AntiqueOlive-Compact.afm +401 -0
  4. data/fonts/AntiqueOlive-Compact.inf +27 -0
  5. data/fonts/AntiqueOlive-Italic.afm +401 -0
  6. data/fonts/AntiqueOlive-Italic.inf +27 -0
  7. data/fonts/AntiqueOlive-Roman.afm +409 -0
  8. data/fonts/AntiqueOlive-Roman.inf +27 -0
  9. data/fonts/AvantGarde-Book.afm +667 -0
  10. data/fonts/AvantGarde-Book.inf +26 -0
  11. data/fonts/AvantGarde-BookOblique.afm +667 -0
  12. data/fonts/AvantGarde-BookOblique.inf +26 -0
  13. data/fonts/AvantGarde-Demi.afm +673 -0
  14. data/fonts/AvantGarde-Demi.inf +26 -0
  15. data/fonts/AvantGarde-DemiOblique.afm +673 -0
  16. data/fonts/AvantGarde-DemiOblique.inf +26 -0
  17. data/fonts/Bookman-Demi.afm +669 -0
  18. data/fonts/Bookman-Demi.inf +25 -0
  19. data/fonts/Bookman-DemiItalic.afm +669 -0
  20. data/fonts/Bookman-DemiItalic.inf +25 -0
  21. data/fonts/Bookman-Light.afm +643 -0
  22. data/fonts/Bookman-Light.inf +25 -0
  23. data/fonts/Bookman-LightItalic.afm +620 -0
  24. data/fonts/Bookman-LightItalic.inf +25 -0
  25. data/fonts/Clarendon-Bold.afm +412 -0
  26. data/fonts/Clarendon-Bold.inf +27 -0
  27. data/fonts/Clarendon-Light.afm +410 -0
  28. data/fonts/Clarendon-Light.inf +27 -0
  29. data/fonts/Clarendon.afm +410 -0
  30. data/fonts/Clarendon.inf +27 -0
  31. data/fonts/CooperBlack-Italic.afm +421 -0
  32. data/fonts/CooperBlack-Italic.inf +26 -0
  33. data/fonts/CooperBlack.afm +427 -0
  34. data/fonts/CooperBlack.inf +26 -0
  35. data/fonts/Coronet-Regular.afm +327 -0
  36. data/fonts/Coronet-Regular.inf +25 -0
  37. data/fonts/Courier-Bold.afm +342 -0
  38. data/fonts/Courier-Bold.inf +26 -0
  39. data/fonts/Courier-BoldOblique.afm +342 -0
  40. data/fonts/Courier-BoldOblique.inf +26 -0
  41. data/fonts/Courier-Oblique.afm +342 -0
  42. data/fonts/Courier-Oblique.inf +26 -0
  43. data/fonts/Courier.afm +342 -0
  44. data/fonts/Courier.inf +26 -0
  45. data/fonts/Eurostile.afm +419 -0
  46. data/fonts/Eurostile.inf +27 -0
  47. data/fonts/Goudy-ExtraBold.afm +412 -0
  48. data/fonts/Goudy-ExtraBold.inf +27 -0
  49. data/fonts/Helvetica-Bold.afm +2827 -0
  50. data/fonts/Helvetica-Bold.inf +26 -0
  51. data/fonts/Helvetica-BoldOblique.afm +2827 -0
  52. data/fonts/Helvetica-BoldOblique.inf +26 -0
  53. data/fonts/Helvetica-Condensed-Bold.afm +623 -0
  54. data/fonts/Helvetica-Condensed-Bold.inf +25 -0
  55. data/fonts/Helvetica-Condensed-BoldObl.afm +623 -0
  56. data/fonts/Helvetica-Condensed-BoldObl.inf +25 -0
  57. data/fonts/Helvetica-Condensed-Oblique.afm +528 -0
  58. data/fonts/Helvetica-Condensed-Oblique.inf +25 -0
  59. data/fonts/Helvetica-Condensed.afm +528 -0
  60. data/fonts/Helvetica-Condensed.inf +25 -0
  61. data/fonts/Helvetica-Narrow-Bold.afm +1439 -0
  62. data/fonts/Helvetica-Narrow-Bold.inf +26 -0
  63. data/fonts/Helvetica-Narrow-BoldOblique.afm +1439 -0
  64. data/fonts/Helvetica-Narrow-BoldOblique.inf +26 -0
  65. data/fonts/Helvetica-Narrow-Oblique.afm +1556 -0
  66. data/fonts/Helvetica-Narrow-Oblique.inf +26 -0
  67. data/fonts/Helvetica-Narrow.afm +1556 -0
  68. data/fonts/Helvetica-Narrow.inf +26 -0
  69. data/fonts/Helvetica-Oblique.afm +3051 -0
  70. data/fonts/Helvetica-Oblique.inf +26 -0
  71. data/fonts/Helvetica.afm +3051 -0
  72. data/fonts/Helvetica.inf +26 -0
  73. data/fonts/LetterGothic-Bold.afm +443 -0
  74. data/fonts/LetterGothic-Bold.inf +26 -0
  75. data/fonts/LetterGothic-BoldSlanted.afm +443 -0
  76. data/fonts/LetterGothic-BoldSlanted.inf +26 -0
  77. data/fonts/LetterGothic-Slanted.afm +443 -0
  78. data/fonts/LetterGothic-Slanted.inf +26 -0
  79. data/fonts/LetterGothic.afm +443 -0
  80. data/fonts/LetterGothic.inf +26 -0
  81. data/fonts/LubalinGraph-Book.afm +351 -0
  82. data/fonts/LubalinGraph-Book.inf +25 -0
  83. data/fonts/LubalinGraph-BookOblique.afm +351 -0
  84. data/fonts/LubalinGraph-BookOblique.inf +25 -0
  85. data/fonts/LubalinGraph-Demi.afm +351 -0
  86. data/fonts/LubalinGraph-Demi.inf +25 -0
  87. data/fonts/LubalinGraph-DemiOblique.afm +351 -0
  88. data/fonts/LubalinGraph-DemiOblique.inf +25 -0
  89. data/fonts/Marigold.afm +491 -0
  90. data/fonts/Marigold.inf +27 -0
  91. data/fonts/MonaLisa-Recut.afm +663 -0
  92. data/fonts/MonaLisa-Recut.inf +27 -0
  93. data/fonts/NewCenturySchlbk-Bold.afm +886 -0
  94. data/fonts/NewCenturySchlbk-Bold.inf +25 -0
  95. data/fonts/NewCenturySchlbk-BoldItalic.afm +1521 -0
  96. data/fonts/NewCenturySchlbk-BoldItalic.inf +26 -0
  97. data/fonts/NewCenturySchlbk-Italic.afm +1113 -0
  98. data/fonts/NewCenturySchlbk-Italic.inf +26 -0
  99. data/fonts/NewCenturySchlbk-Roman.afm +1067 -0
  100. data/fonts/NewCenturySchlbk-Roman.inf +26 -0
  101. data/fonts/Optima-Bold.afm +515 -0
  102. data/fonts/Optima-Bold.inf +27 -0
  103. data/fonts/Optima-BoldItalic.afm +712 -0
  104. data/fonts/Optima-BoldItalic.inf +26 -0
  105. data/fonts/Optima-Italic.afm +737 -0
  106. data/fonts/Optima-Italic.inf +26 -0
  107. data/fonts/Optima.afm +501 -0
  108. data/fonts/Optima.inf +27 -0
  109. data/fonts/Palatino-Bold.afm +675 -0
  110. data/fonts/Palatino-Bold.inf +26 -0
  111. data/fonts/Palatino-BoldItalic.afm +702 -0
  112. data/fonts/Palatino-BoldItalic.inf +26 -0
  113. data/fonts/Palatino-Italic.afm +700 -0
  114. data/fonts/Palatino-Italic.inf +26 -0
  115. data/fonts/Palatino-Roman.afm +718 -0
  116. data/fonts/Palatino-Roman.inf +26 -0
  117. data/fonts/StempelGaramond-Bold.afm +412 -0
  118. data/fonts/StempelGaramond-Bold.inf +27 -0
  119. data/fonts/StempelGaramond-BoldItalic.afm +413 -0
  120. data/fonts/StempelGaramond-BoldItalic.inf +27 -0
  121. data/fonts/StempelGaramond-Italic.afm +413 -0
  122. data/fonts/StempelGaramond-Italic.inf +27 -0
  123. data/fonts/StempelGaramond-Roman.afm +412 -0
  124. data/fonts/StempelGaramond-Roman.inf +27 -0
  125. data/fonts/Symbol.afm +213 -0
  126. data/fonts/Symbol.inf +27 -0
  127. data/fonts/Times-Bold.afm +2588 -0
  128. data/fonts/Times-Bold.inf +26 -0
  129. data/fonts/Times-BoldItalic.afm +2384 -0
  130. data/fonts/Times-BoldItalic.inf +26 -0
  131. data/fonts/Times-Italic.afm +2667 -0
  132. data/fonts/Times-Italic.inf +26 -0
  133. data/fonts/Times-Roman.afm +2419 -0
  134. data/fonts/Times-Roman.inf +26 -0
  135. data/fonts/Univers-Bold.afm +712 -0
  136. data/fonts/Univers-Bold.inf +27 -0
  137. data/fonts/Univers-BoldOblique.afm +712 -0
  138. data/fonts/Univers-BoldOblique.inf +27 -0
  139. data/fonts/Univers-Condensed.afm +403 -0
  140. data/fonts/Univers-Condensed.inf +27 -0
  141. data/fonts/Univers-CondensedOblique.afm +403 -0
  142. data/fonts/Univers-CondensedOblique.inf +27 -0
  143. data/fonts/Univers-Light.afm +737 -0
  144. data/fonts/Univers-Light.inf +27 -0
  145. data/fonts/Univers-LightOblique.afm +737 -0
  146. data/fonts/Univers-LightOblique.inf +27 -0
  147. data/fonts/Univers-Oblique.afm +656 -0
  148. data/fonts/Univers-Oblique.inf +27 -0
  149. data/fonts/Univers.afm +656 -0
  150. data/fonts/Univers.inf +27 -0
  151. data/fonts/ZapfChancery-MediumItalic.afm +842 -0
  152. data/fonts/ZapfChancery-MediumItalic.inf +26 -0
  153. data/fonts/ZapfDingbats.afm +225 -0
  154. data/fonts/ZapfDingbats.inf +26 -0
  155. data/lib/epdfafm.rb +334 -0
  156. data/lib/epdfdw.rb +710 -0
  157. data/lib/epdfk.rb +3142 -0
  158. data/lib/epdfo.rb +882 -0
  159. data/lib/epdfpw.rb +1749 -0
  160. data/lib/epdfs.rb +101 -0
  161. data/lib/epdfsw.rb +267 -0
  162. data/lib/epdft.rb +145 -0
  163. data/lib/epdftt.rb +458 -0
  164. data/test/pdf_tests.rb +16 -0
  165. data/test/test.rb +816 -0
  166. data/test/test_epdfafm.rb +202 -0
  167. data/test/test_epdfdw.rb +369 -0
  168. data/test/test_epdfk.rb +47 -0
  169. data/test/test_epdfo.rb +762 -0
  170. data/test/test_epdfpw.rb +129 -0
  171. data/test/test_epdfs.rb +54 -0
  172. data/test/test_epdfsw.rb +314 -0
  173. data/test/test_epdft.rb +198 -0
  174. data/test/test_epdftt.rb +34 -0
  175. data/test/test_helpers.rb +18 -0
  176. data/test/testimg.jpg +0 -0
  177. metadata +247 -0
data/lib/epdfk.rb ADDED
@@ -0,0 +1,3142 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: ASCII-8BIT
3
+ #
4
+ # Created by Brent Rowland on 2007-08-26.
5
+ # Copyright (c) 2007, Eidetic Software. All rights reserved.
6
+
7
+ module EideticPDF
8
+ VERSION = '1.0.0'
9
+
10
+ module PdfK # :nodoc:
11
+ FONT_WIDTHS = [
12
+ [ # 0 Helvetica
13
+ 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
14
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
15
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
16
+ 0, 0, 278, 278, 355, 556, 556, 889, 667, 191, # 30
17
+ 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, # 40
18
+ 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, # 50
19
+ 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, # 60
20
+ 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, # 70
21
+ 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, # 80
22
+ 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, # 90
23
+ 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, # 100
24
+ 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, # 110
25
+ 500, 500, 500, 334, 260, 334, 584, 350, 558, 350, # 120
26
+ 222, 556, 333, 1000, 556, 556, 333, 1000, 667, 333, # 130
27
+ 1000, 350, 611, 350, 350, 222, 222, 333, 333, 350, # 140
28
+ 556, 1000, 333, 1000, 500, 333, 944, 350, 500, 667, # 150
29
+ 278, 333, 556, 556, 556, 556, 260, 556, 333, 737, # 160
30
+ 370, 556, 584, 333, 737, 333, 333, 584, 333, 333, # 170
31
+ 333, 556, 537, 278, 333, 333, 365, 556, 834, 834, # 180
32
+ 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, # 190
33
+ 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, # 200
34
+ 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, # 210
35
+ 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, # 220
36
+ 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, # 230
37
+ 556, 556, 556, 556, 556, 556, 556, 584, 611, 556, # 240
38
+ 556, 556, 556, 500, 556, 500], # 250
39
+ [ # 1 Helvetica-Bold
40
+ 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
41
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
42
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
43
+ 0, 0, 278, 333, 474, 556, 556, 889, 722, 238, # 30
44
+ 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, # 40
45
+ 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, # 50
46
+ 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, # 60
47
+ 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, # 70
48
+ 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, # 80
49
+ 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, # 90
50
+ 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, # 100
51
+ 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, # 110
52
+ 556, 556, 500, 389, 280, 389, 584, 350, 558, 350, # 120
53
+ 278, 556, 500, 1000, 556, 556, 333, 1000, 667, 333, # 130
54
+ 1000, 350, 611, 350, 350, 278, 278, 500, 500, 350, # 140
55
+ 556, 1000, 333, 1000, 556, 333, 944, 350, 500, 667, # 150
56
+ 278, 333, 556, 556, 556, 556, 280, 556, 333, 737, # 160
57
+ 370, 556, 584, 333, 737, 333, 333, 584, 333, 333, # 170
58
+ 333, 611, 556, 278, 333, 333, 365, 556, 834, 834, # 180
59
+ 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, # 190
60
+ 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, # 200
61
+ 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, # 210
62
+ 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, # 220
63
+ 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, # 230
64
+ 611, 611, 611, 611, 611, 611, 611, 584, 611, 611, # 240
65
+ 611, 611, 611, 556, 611, 556], # 250
66
+ [ # 2 Helvetica-Oblique
67
+ 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
68
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
69
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
70
+ 0, 0, 278, 278, 355, 556, 556, 889, 667, 191, # 30
71
+ 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, # 40
72
+ 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, # 50
73
+ 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, # 60
74
+ 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, # 70
75
+ 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, # 80
76
+ 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, # 90
77
+ 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, # 100
78
+ 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, # 110
79
+ 500, 500, 500, 334, 260, 334, 584, 350, 558, 350, # 120
80
+ 222, 556, 333, 1000, 556, 556, 333, 1000, 667, 333, # 130
81
+ 1000, 350, 611, 350, 350, 222, 222, 333, 333, 350, # 140
82
+ 556, 1000, 333, 1000, 500, 333, 944, 350, 500, 667, # 150
83
+ 278, 333, 556, 556, 556, 556, 260, 556, 333, 737, # 160
84
+ 370, 556, 584, 333, 737, 333, 333, 584, 333, 333, # 170
85
+ 333, 556, 537, 278, 333, 333, 365, 556, 834, 834, # 180
86
+ 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, # 190
87
+ 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, # 200
88
+ 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, # 210
89
+ 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, # 220
90
+ 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, # 230
91
+ 556, 556, 556, 556, 556, 556, 556, 584, 611, 556, # 240
92
+ 556, 556, 556, 500, 556, 500], # 250
93
+ [ # 3 Helvetica-BoldOblique
94
+ 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
95
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
96
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
97
+ 0, 0, 278, 333, 474, 556, 556, 889, 722, 238, # 30
98
+ 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, # 40
99
+ 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, # 50
100
+ 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, # 60
101
+ 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, # 70
102
+ 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, # 80
103
+ 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, # 90
104
+ 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, # 100
105
+ 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, # 110
106
+ 556, 556, 500, 389, 280, 389, 584, 350, 558, 350, # 120
107
+ 278, 556, 500, 1000, 556, 556, 333, 1000, 667, 333, # 130
108
+ 1000, 350, 611, 350, 350, 278, 278, 500, 500, 350, # 140
109
+ 556, 1000, 333, 1000, 556, 333, 944, 350, 500, 667, # 150
110
+ 278, 333, 556, 556, 556, 556, 280, 556, 333, 737, # 160
111
+ 370, 556, 584, 333, 737, 333, 333, 584, 333, 333, # 170
112
+ 333, 611, 556, 278, 333, 333, 365, 556, 834, 834, # 180
113
+ 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, # 190
114
+ 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, # 200
115
+ 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, # 210
116
+ 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, # 220
117
+ 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, # 230
118
+ 611, 611, 611, 611, 611, 611, 611, 584, 611, 611, # 240
119
+ 611, 611, 611, 556, 611, 556], # 250
120
+ [ # 4 Times-Roman
121
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
122
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
123
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
124
+ 0, 0, 250, 333, 408, 500, 500, 833, 778, 180, # 30
125
+ 333, 333, 500, 564, 250, 333, 250, 278, 500, 500, # 40
126
+ 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, # 50
127
+ 564, 564, 564, 444, 921, 722, 667, 667, 722, 611, # 60
128
+ 556, 722, 722, 333, 389, 722, 611, 889, 722, 722, # 70
129
+ 556, 722, 667, 556, 611, 722, 722, 944, 722, 722, # 80
130
+ 611, 333, 278, 333, 469, 500, 333, 444, 500, 444, # 90
131
+ 500, 444, 333, 500, 500, 278, 278, 500, 278, 778, # 100
132
+ 500, 500, 500, 500, 333, 389, 278, 500, 500, 722, # 110
133
+ 500, 500, 444, 480, 200, 480, 541, 350, 500, 350, # 120
134
+ 333, 500, 444, 1000, 500, 500, 333, 1000, 556, 333, # 130
135
+ 889, 350, 611, 350, 350, 333, 333, 444, 444, 350, # 140
136
+ 500, 1000, 333, 980, 389, 333, 722, 350, 444, 722, # 150
137
+ 250, 333, 500, 500, 500, 500, 200, 500, 333, 760, # 160
138
+ 276, 500, 564, 333, 760, 333, 333, 564, 300, 300, # 170
139
+ 333, 500, 453, 250, 333, 300, 310, 500, 750, 750, # 180
140
+ 750, 444, 722, 722, 722, 722, 722, 722, 889, 667, # 190
141
+ 611, 611, 611, 611, 333, 333, 333, 333, 722, 722, # 200
142
+ 722, 722, 722, 722, 722, 564, 722, 722, 722, 722, # 210
143
+ 722, 722, 556, 500, 444, 444, 444, 444, 444, 444, # 220
144
+ 667, 444, 444, 444, 444, 444, 278, 278, 278, 278, # 230
145
+ 500, 500, 500, 500, 500, 500, 500, 564, 500, 500, # 240
146
+ 500, 500, 500, 500, 500, 500], # 250
147
+ [ # 5 Times-Bold
148
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
149
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
150
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
151
+ 0, 0, 250, 333, 555, 500, 500, 1000, 833, 278, # 30
152
+ 333, 333, 500, 570, 250, 333, 250, 278, 500, 500, # 40
153
+ 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, # 50
154
+ 570, 570, 570, 500, 930, 722, 667, 722, 722, 667, # 60
155
+ 611, 778, 778, 389, 500, 778, 667, 944, 722, 778, # 70
156
+ 611, 778, 722, 556, 667, 722, 722, 1000, 722, 722, # 80
157
+ 667, 333, 278, 333, 581, 500, 333, 500, 556, 444, # 90
158
+ 556, 444, 333, 500, 556, 278, 333, 556, 278, 833, # 100
159
+ 556, 500, 556, 556, 444, 389, 333, 556, 500, 722, # 110
160
+ 500, 500, 444, 394, 220, 394, 520, 350, 500, 350, # 120
161
+ 333, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, # 130
162
+ 1000, 350, 667, 350, 350, 333, 333, 500, 500, 350, # 140
163
+ 500, 1000, 333, 1000, 389, 333, 722, 350, 444, 722, # 150
164
+ 250, 333, 500, 500, 500, 500, 220, 500, 333, 747, # 160
165
+ 300, 500, 570, 333, 747, 333, 333, 570, 300, 300, # 170
166
+ 333, 556, 540, 250, 333, 300, 330, 500, 750, 750, # 180
167
+ 750, 500, 722, 722, 722, 722, 722, 722, 1000, 722, # 190
168
+ 667, 667, 667, 667, 389, 389, 389, 389, 722, 722, # 200
169
+ 778, 778, 778, 778, 778, 570, 778, 722, 722, 722, # 210
170
+ 722, 722, 611, 556, 500, 500, 500, 500, 500, 500, # 220
171
+ 722, 444, 444, 444, 444, 444, 278, 278, 278, 278, # 230
172
+ 500, 556, 500, 500, 500, 500, 500, 570, 500, 556, # 240
173
+ 556, 556, 556, 500, 556, 500], # 250
174
+ [ # 6 Times-Italic
175
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
176
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
177
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
178
+ 0, 0, 250, 333, 420, 500, 500, 833, 778, 214, # 30
179
+ 333, 333, 500, 675, 250, 333, 250, 278, 500, 500, # 40
180
+ 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, # 50
181
+ 675, 675, 675, 500, 920, 611, 611, 667, 722, 611, # 60
182
+ 611, 722, 722, 333, 444, 667, 556, 833, 667, 722, # 70
183
+ 611, 722, 611, 500, 556, 722, 611, 833, 611, 556, # 80
184
+ 556, 389, 278, 389, 422, 500, 333, 500, 500, 444, # 90
185
+ 500, 444, 278, 500, 500, 278, 278, 444, 278, 722, # 100
186
+ 500, 500, 500, 500, 389, 389, 278, 500, 444, 667, # 110
187
+ 444, 444, 389, 400, 275, 400, 541, 350, 500, 350, # 120
188
+ 333, 500, 556, 889, 500, 500, 333, 1000, 500, 333, # 130
189
+ 944, 350, 556, 350, 350, 333, 333, 556, 556, 350, # 140
190
+ 500, 889, 333, 980, 389, 333, 667, 350, 389, 556, # 150
191
+ 250, 389, 500, 500, 500, 500, 275, 500, 333, 760, # 160
192
+ 276, 500, 675, 333, 760, 333, 333, 675, 300, 300, # 170
193
+ 333, 500, 523, 250, 333, 300, 310, 500, 750, 750, # 180
194
+ 750, 500, 611, 611, 611, 611, 611, 611, 889, 667, # 190
195
+ 611, 611, 611, 611, 333, 333, 333, 333, 722, 667, # 200
196
+ 722, 722, 722, 722, 722, 675, 722, 722, 722, 722, # 210
197
+ 722, 556, 611, 500, 500, 500, 500, 500, 500, 500, # 220
198
+ 667, 444, 444, 444, 444, 444, 278, 278, 278, 278, # 230
199
+ 500, 500, 500, 500, 500, 500, 500, 675, 500, 500, # 240
200
+ 500, 500, 500, 444, 500, 444], # 250
201
+ [ # 7 Times-BoldItalic
202
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
203
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
204
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
205
+ 0, 0, 250, 389, 555, 500, 500, 833, 778, 278, # 30
206
+ 333, 333, 500, 570, 250, 333, 250, 278, 500, 500, # 40
207
+ 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, # 50
208
+ 570, 570, 570, 500, 832, 667, 667, 667, 722, 667, # 60
209
+ 667, 722, 778, 389, 500, 667, 611, 889, 722, 722, # 70
210
+ 611, 722, 667, 556, 611, 722, 667, 889, 667, 611, # 80
211
+ 611, 333, 278, 333, 570, 500, 333, 500, 500, 444, # 90
212
+ 500, 444, 333, 500, 556, 278, 278, 500, 278, 778, # 100
213
+ 556, 500, 500, 500, 389, 389, 278, 556, 444, 667, # 110
214
+ 500, 444, 389, 348, 220, 348, 570, 350, 500, 350, # 120
215
+ 333, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, # 130
216
+ 944, 350, 611, 350, 350, 333, 333, 500, 500, 350, # 140
217
+ 500, 1000, 333, 1000, 389, 333, 722, 350, 389, 611, # 150
218
+ 250, 389, 500, 500, 500, 500, 220, 500, 333, 747, # 160
219
+ 266, 500, 606, 333, 747, 333, 333, 570, 300, 300, # 170
220
+ 333, 576, 500, 250, 333, 300, 300, 500, 750, 750, # 180
221
+ 750, 500, 667, 667, 667, 667, 667, 667, 944, 667, # 190
222
+ 667, 667, 667, 667, 389, 389, 389, 389, 722, 722, # 200
223
+ 722, 722, 722, 722, 722, 570, 722, 722, 722, 722, # 210
224
+ 722, 611, 611, 500, 500, 500, 500, 500, 500, 500, # 220
225
+ 722, 444, 444, 444, 444, 444, 278, 278, 278, 278, # 230
226
+ 500, 556, 500, 500, 500, 500, 500, 570, 500, 556, # 240
227
+ 556, 556, 556, 444, 500, 444], # 250
228
+ [ # 8 Courier
229
+ 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
230
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
231
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
232
+ 0, 0, 600, 600, 600, 600, 600, 600, 600, 600, # 30
233
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 40
234
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 50
235
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 60
236
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 70
237
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 80
238
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 90
239
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 100
240
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 110
241
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 120
242
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 130
243
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 140
244
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 150
245
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 160
246
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 170
247
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 180
248
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 190
249
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 200
250
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 210
251
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 220
252
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 230
253
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 240
254
+ 600, 600, 600, 600, 600, 600], # 250
255
+ [ # 9 Courier-Bold
256
+ 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
257
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
258
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
259
+ 0, 0, 600, 600, 600, 600, 600, 600, 600, 600, # 30
260
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 40
261
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 50
262
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 60
263
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 70
264
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 80
265
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 90
266
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 100
267
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 110
268
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 120
269
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 130
270
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 140
271
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 150
272
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 160
273
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 170
274
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 180
275
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 190
276
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 200
277
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 210
278
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 220
279
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 230
280
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 240
281
+ 600, 600, 600, 600, 600, 600], # 250
282
+ [ # 10 Courier-Oblique }
283
+ 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
284
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
285
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
286
+ 0, 0, 600, 600, 600, 600, 600, 600, 600, 600, # 30
287
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 40
288
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 50
289
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 60
290
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 70
291
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 80
292
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 90
293
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 100
294
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 110
295
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 120
296
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 130
297
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 140
298
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 150
299
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 160
300
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 170
301
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 180
302
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 190
303
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 200
304
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 210
305
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 220
306
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 230
307
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 240
308
+ 600, 600, 600, 600, 600, 600], # 250
309
+ [ # 11 Courier-BoldOblique }
310
+ 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
311
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
312
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
313
+ 0, 0, 600, 600, 600, 600, 600, 600, 600, 600, # 30
314
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 40
315
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 50
316
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 60
317
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 70
318
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 80
319
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 90
320
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 100
321
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 110
322
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 120
323
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 130
324
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 140
325
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 150
326
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 160
327
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 170
328
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 180
329
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 190
330
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 200
331
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 210
332
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 220
333
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 230
334
+ 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, # 240
335
+ 600, 600, 600, 600, 600, 600], # 250
336
+ [ # 12 Symbol --- This is in StandardEncoding
337
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
338
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
339
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
340
+ 0, 0, 250, 333, 713, 500, 549, 833, 778, 439, # 30
341
+ 333, 333, 500, 549, 250, 549, 250, 278, 500, 500, # 40
342
+ 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, # 50
343
+ 549, 549, 549, 444, 549, 722, 667, 722, 612, 611, # 60
344
+ 763, 603, 722, 333, 631, 722, 686, 889, 722, 722, # 70
345
+ 768, 741, 556, 592, 611, 690, 439, 768, 645, 795, # 80
346
+ 611, 333, 863, 333, 658, 500, 500, 631, 549, 549, # 90
347
+ 494, 439, 521, 411, 603, 329, 603, 549, 549, 576, # 100
348
+ 521, 549, 549, 521, 549, 603, 439, 576, 713, 686, # 110
349
+ 493, 686, 494, 480, 200, 480, 549, 0, 0, 0, # 120
350
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 130
351
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 140
352
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 150
353
+ 0, 620, 247, 549, 167, 713, 500, 753, 753, 753, # 160
354
+ 753, 1042, 987, 603, 987, 603, 400, 549, 411, 549, # 170
355
+ 549, 713, 494, 460, 549, 549, 549, 549, 1000, 603, # 180
356
+ 1000, 658, 823, 686, 795, 987, 768, 768, 823, 768, # 190
357
+ 768, 713, 713, 713, 713, 713, 713, 713, 768, 713, # 200
358
+ 790, 790, 890, 823, 549, 250, 713, 603, 603, 1042, # 210
359
+ 987, 603, 987, 603, 494, 329, 790, 790, 786, 713, # 220
360
+ 384, 384, 384, 384, 384, 384, 494, 494, 494, 494, # 230
361
+ 0, 329, 274, 686, 686, 686, 384, 384, 384, 384, # 240
362
+ 384, 384, 494, 494, 494, 0], # 250
363
+ [ # 13 ZapfDingbats --- This is in StandardEncoding
364
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
365
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
366
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
367
+ 0, 0, 278, 974, 961, 974, 980, 719, 789, 790, # 30
368
+ 791, 690, 960, 939, 549, 855, 911, 933, 911, 945, # 40
369
+ 974, 755, 846, 762, 761, 571, 677, 763, 760, 759, # 50
370
+ 754, 494, 552, 537, 577, 692, 786, 788, 788, 790, # 60
371
+ 793, 794, 816, 823, 789, 841, 823, 833, 816, 831, # 70
372
+ 923, 744, 723, 749, 790, 792, 695, 776, 768, 792, # 80
373
+ 759, 707, 708, 682, 701, 826, 815, 789, 789, 707, # 90
374
+ 687, 696, 689, 786, 787, 713, 791, 785, 791, 873, # 100
375
+ 761, 762, 762, 759, 759, 892, 892, 788, 784, 438, # 110
376
+ 138, 277, 415, 392, 392, 668, 668, 0, 0, 0, # 120
377
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 130
378
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 140
379
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 150
380
+ 0, 732, 544, 544, 910, 667, 760, 760, 776, 595, # 160
381
+ 694, 626, 788, 788, 788, 788, 788, 788, 788, 788, # 170
382
+ 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, # 180
383
+ 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, # 190
384
+ 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, # 200
385
+ 788, 788, 894, 838, 1016, 458, 748, 924, 748, 918, # 210
386
+ 927, 928, 928, 834, 873, 828, 924, 924, 917, 930, # 220
387
+ 931, 463, 883, 836, 836, 867, 867, 696, 696, 874, # 230
388
+ 0, 874, 760, 946, 771, 865, 771, 888, 967, 888, # 240
389
+ 831, 873, 927, 970, 918, 0], # 250
390
+ [ # 14 AvantGarde-Book
391
+ 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
392
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
393
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
394
+ 0, 0, 277, 295, 309, 554, 554, 775, 757, 198, # 30
395
+ 369, 369, 425, 606, 277, 332, 277, 437, 554, 554, # 40
396
+ 554, 554, 554, 554, 554, 554, 554, 554, 277, 277, # 50
397
+ 606, 606, 606, 591, 867, 740, 574, 813, 744, 536, # 60
398
+ 485, 872, 683, 226, 482, 591, 462, 919, 740, 869, # 70
399
+ 592, 871, 607, 498, 426, 655, 702, 960, 609, 592, # 80
400
+ 480, 351, 605, 351, 606, 500, 378, 683, 682, 647, # 90
401
+ 685, 650, 314, 673, 610, 200, 203, 502, 200, 938, # 100
402
+ 610, 655, 682, 682, 301, 388, 339, 608, 554, 831, # 110
403
+ 480, 536, 425, 351, 672, 351, 606, 606, 558, 606, # 120
404
+ 354, 554, 502, 1000, 553, 553, 502, 1174, 498, 251, # 130
405
+ 1194, 606, 480, 606, 606, 351, 351, 502, 484, 606, # 140
406
+ 500, 1000, 439, 1000, 388, 251, 1137, 606, 425, 592, # 150
407
+ 277, 295, 554, 554, 554, 554, 672, 615, 369, 747, # 160
408
+ 369, 425, 606, 332, 747, 485, 332, 606, 332, 332, # 170
409
+ 375, 608, 564, 277, 324, 332, 369, 425, 831, 831, # 180
410
+ 831, 591, 740, 740, 740, 740, 740, 740, 992, 813, # 190
411
+ 536, 536, 536, 536, 226, 226, 226, 226, 790, 740, # 200
412
+ 869, 869, 869, 869, 869, 606, 868, 655, 655, 655, # 210
413
+ 655, 592, 592, 554, 683, 683, 683, 683, 683, 683, # 220
414
+ 1157, 647, 650, 650, 650, 650, 200, 200, 200, 200, # 230
415
+ 655, 610, 655, 655, 655, 655, 655, 606, 653, 608, # 240
416
+ 608, 608, 608, 536, 682, 536], # 250
417
+ [ # 15 AvantGarde-BookOblique
418
+ 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
419
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
420
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
421
+ 0, 0, 277, 295, 309, 554, 554, 775, 757, 198, # 30
422
+ 369, 369, 425, 606, 277, 332, 277, 437, 554, 554, # 40
423
+ 554, 554, 554, 554, 554, 554, 554, 554, 277, 277, # 50
424
+ 606, 606, 606, 591, 867, 740, 574, 813, 744, 536, # 60
425
+ 485, 872, 683, 226, 482, 591, 462, 919, 740, 869, # 70
426
+ 592, 871, 607, 498, 426, 655, 702, 960, 609, 592, # 80
427
+ 480, 351, 605, 351, 606, 500, 378, 683, 682, 647, # 90
428
+ 685, 650, 314, 673, 610, 200, 203, 502, 200, 938, # 100
429
+ 610, 655, 682, 682, 301, 388, 339, 608, 554, 831, # 110
430
+ 480, 536, 425, 351, 672, 351, 606, 606, 558, 606, # 120
431
+ 354, 554, 502, 1000, 553, 553, 502, 1174, 498, 251, # 130
432
+ 1194, 606, 480, 606, 606, 351, 351, 502, 484, 606, # 140
433
+ 500, 1000, 439, 1000, 388, 251, 1137, 606, 425, 592, # 150
434
+ 277, 295, 554, 554, 554, 554, 672, 615, 369, 747, # 160
435
+ 369, 425, 606, 332, 747, 485, 332, 606, 332, 332, # 170
436
+ 375, 608, 564, 277, 324, 332, 369, 425, 831, 831, # 180
437
+ 831, 591, 740, 740, 740, 740, 740, 740, 992, 813, # 190
438
+ 536, 536, 536, 536, 226, 226, 226, 226, 790, 740, # 200
439
+ 869, 869, 869, 869, 869, 606, 868, 655, 655, 655, # 210
440
+ 655, 592, 592, 554, 683, 683, 683, 683, 683, 683, # 220
441
+ 1157, 647, 650, 650, 650, 650, 200, 200, 200, 200, # 230
442
+ 655, 610, 655, 655, 655, 655, 655, 606, 653, 608, # 240
443
+ 608, 608, 608, 536, 682, 536], # 250
444
+ [ # 16 AvantGarde-Demi
445
+ 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
446
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
447
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
448
+ 0, 0, 280, 280, 360, 560, 560, 860, 680, 220, # 30
449
+ 380, 380, 440, 600, 280, 420, 280, 460, 560, 560, # 40
450
+ 560, 560, 560, 560, 560, 560, 560, 560, 280, 280, # 50
451
+ 600, 600, 600, 560, 740, 740, 580, 780, 700, 520, # 60
452
+ 480, 840, 680, 280, 480, 620, 440, 900, 740, 840, # 70
453
+ 560, 840, 580, 520, 420, 640, 700, 900, 680, 620, # 80
454
+ 500, 320, 640, 320, 600, 500, 420, 660, 660, 640, # 90
455
+ 660, 640, 280, 660, 600, 240, 260, 580, 240, 940, # 100
456
+ 600, 640, 660, 660, 320, 440, 300, 600, 560, 800, # 110
457
+ 560, 580, 460, 340, 600, 340, 600, 600, 558, 600, # 120
458
+ 280, 560, 480, 1000, 560, 560, 540, 1280, 520, 240, # 130
459
+ 1060, 600, 500, 600, 600, 280, 280, 480, 480, 600, # 140
460
+ 500, 1000, 480, 1000, 440, 240, 1080, 600, 460, 620, # 150
461
+ 280, 280, 560, 560, 560, 560, 600, 560, 500, 740, # 160
462
+ 360, 460, 600, 420, 740, 420, 360, 600, 336, 336, # 170
463
+ 420, 576, 600, 280, 340, 336, 360, 460, 840, 840, # 180
464
+ 840, 560, 740, 740, 740, 740, 740, 740, 900, 780, # 190
465
+ 520, 520, 520, 520, 280, 280, 280, 280, 742, 740, # 200
466
+ 840, 840, 840, 840, 840, 600, 840, 640, 640, 640, # 210
467
+ 640, 620, 560, 600, 660, 660, 660, 660, 660, 660, # 220
468
+ 1080, 640, 640, 640, 640, 640, 240, 240, 240, 240, # 230
469
+ 640, 600, 640, 640, 640, 640, 640, 600, 660, 600, # 240
470
+ 600, 600, 600, 580, 660, 580], # 250
471
+ [ # 17 AvantGarde-DemiOblique
472
+ 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
473
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
474
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
475
+ 0, 0, 280, 280, 360, 560, 560, 860, 680, 220, # 30
476
+ 380, 380, 440, 600, 280, 420, 280, 460, 560, 560, # 40
477
+ 560, 560, 560, 560, 560, 560, 560, 560, 280, 280, # 50
478
+ 600, 600, 600, 560, 740, 740, 580, 780, 700, 520, # 60
479
+ 480, 840, 680, 280, 480, 620, 440, 900, 740, 840, # 70
480
+ 560, 840, 580, 520, 420, 640, 700, 900, 680, 620, # 80
481
+ 500, 320, 640, 320, 600, 500, 420, 660, 660, 640, # 90
482
+ 660, 640, 280, 660, 600, 240, 260, 580, 240, 940, # 100
483
+ 600, 640, 660, 660, 320, 440, 300, 600, 560, 800, # 110
484
+ 560, 580, 460, 340, 600, 340, 600, 600, 558, 600, # 120
485
+ 280, 560, 480, 1000, 560, 560, 540, 1280, 520, 240, # 130
486
+ 1060, 600, 500, 600, 600, 280, 280, 480, 480, 600, # 140
487
+ 500, 1000, 480, 1000, 440, 240, 1080, 600, 460, 620, # 150
488
+ 280, 280, 560, 560, 560, 560, 600, 560, 500, 740, # 160
489
+ 360, 460, 600, 420, 740, 420, 360, 600, 336, 336, # 170
490
+ 420, 576, 600, 280, 340, 336, 360, 460, 840, 840, # 180
491
+ 840, 560, 740, 740, 740, 740, 740, 740, 900, 780, # 190
492
+ 520, 520, 520, 520, 280, 280, 280, 280, 742, 740, # 200
493
+ 840, 840, 840, 840, 840, 600, 840, 640, 640, 640, # 210
494
+ 640, 620, 560, 600, 660, 660, 660, 660, 660, 660, # 220
495
+ 1080, 640, 640, 640, 640, 640, 240, 240, 240, 240, # 230
496
+ 640, 600, 640, 640, 640, 640, 640, 600, 660, 600, # 240
497
+ 600, 600, 600, 580, 660, 580], # 250
498
+ [ # 18 Bookman-Demi }
499
+ 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
500
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
501
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
502
+ 0, 0, 340, 360, 420, 660, 660, 940, 800, 240, # 30
503
+ 320, 320, 460, 600, 340, 360, 340, 600, 660, 660, # 40
504
+ 660, 660, 660, 660, 660, 660, 660, 660, 340, 340, # 50
505
+ 600, 600, 600, 660, 820, 720, 720, 740, 780, 720, # 60
506
+ 680, 780, 820, 400, 640, 800, 640, 940, 740, 800, # 70
507
+ 660, 800, 780, 660, 700, 740, 720, 940, 780, 700, # 80
508
+ 640, 300, 600, 300, 600, 500, 400, 580, 600, 580, # 90
509
+ 640, 580, 380, 580, 680, 360, 340, 660, 340, 1000, # 100
510
+ 680, 620, 640, 620, 460, 520, 460, 660, 600, 800, # 110
511
+ 600, 620, 560, 320, 600, 320, 600, 460, 558, 460, # 120
512
+ 320, 660, 540, 1000, 440, 380, 500, 1360, 660, 220, # 130
513
+ 1220, 460, 640, 460, 460, 320, 320, 540, 540, 460, # 140
514
+ 500, 1000, 480, 980, 520, 220, 940, 460, 560, 700, # 150
515
+ 340, 360, 660, 660, 660, 660, 600, 600, 500, 740, # 160
516
+ 400, 400, 600, 360, 740, 460, 340, 600, 396, 396, # 170
517
+ 400, 660, 800, 340, 360, 396, 400, 400, 990, 990, # 180
518
+ 990, 660, 720, 720, 720, 720, 720, 720, 1140, 740, # 190
519
+ 720, 720, 720, 720, 400, 400, 400, 400, 780, 740, # 200
520
+ 800, 800, 800, 800, 800, 600, 800, 740, 740, 740, # 210
521
+ 740, 700, 660, 660, 580, 580, 580, 580, 580, 580, # 220
522
+ 880, 580, 580, 580, 580, 580, 360, 360, 360, 360, # 230
523
+ 620, 680, 620, 620, 620, 620, 620, 600, 620, 660, # 240
524
+ 660, 660, 660, 620, 640, 620], # 250
525
+ [ # 19 Bookman-DemiItalic }
526
+ 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
527
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
528
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
529
+ 0, 0, 340, 320, 380, 680, 680, 880, 980, 180, # 30
530
+ 260, 260, 460, 600, 340, 280, 340, 360, 680, 680, # 40
531
+ 680, 680, 680, 680, 680, 680, 680, 680, 340, 340, # 50
532
+ 620, 600, 620, 620, 780, 720, 720, 700, 760, 720, # 60
533
+ 660, 760, 800, 380, 620, 780, 640, 860, 740, 760, # 70
534
+ 640, 760, 740, 700, 700, 740, 660, 1000, 740, 660, # 80
535
+ 680, 260, 580, 260, 620, 500, 380, 680, 600, 560, # 90
536
+ 680, 560, 420, 620, 700, 380, 320, 700, 380, 960, # 100
537
+ 680, 600, 660, 620, 500, 540, 440, 680, 540, 860, # 110
538
+ 620, 600, 560, 300, 620, 300, 620, 360, 558, 360, # 120
539
+ 300, 680, 520, 1000, 420, 420, 480, 1360, 700, 220, # 130
540
+ 1180, 360, 680, 360, 360, 320, 320, 520, 520, 360, # 140
541
+ 500, 1000, 480, 940, 540, 220, 920, 360, 560, 660, # 150
542
+ 340, 320, 680, 680, 680, 680, 620, 620, 520, 780, # 160
543
+ 440, 380, 620, 280, 780, 480, 360, 600, 408, 408, # 170
544
+ 340, 680, 680, 340, 360, 408, 440, 380, 1020, 1020, # 180
545
+ 1020, 620, 720, 720, 720, 720, 720, 720, 1140, 700, # 190
546
+ 720, 720, 720, 720, 380, 380, 380, 380, 760, 740, # 200
547
+ 760, 760, 760, 760, 760, 600, 760, 740, 740, 740, # 210
548
+ 740, 660, 640, 660, 680, 680, 680, 680, 680, 680, # 220
549
+ 880, 560, 560, 560, 560, 560, 380, 380, 380, 380, # 230
550
+ 600, 680, 600, 600, 600, 600, 600, 600, 600, 680, # 240
551
+ 680, 680, 680, 600, 660, 600], # 250
552
+ [ # 20 Bookman-Light
553
+ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
554
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
555
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
556
+ 0, 0, 320, 300, 380, 620, 620, 900, 800, 220, # 30
557
+ 300, 300, 440, 600, 320, 400, 320, 600, 620, 620, # 40
558
+ 620, 620, 620, 620, 620, 620, 620, 620, 320, 320, # 50
559
+ 600, 600, 600, 540, 820, 680, 740, 740, 800, 720, # 60
560
+ 640, 800, 800, 340, 600, 720, 600, 920, 740, 800, # 70
561
+ 620, 820, 720, 660, 620, 780, 700, 960, 720, 640, # 80
562
+ 640, 300, 600, 300, 600, 500, 340, 580, 620, 520, # 90
563
+ 620, 520, 320, 540, 660, 300, 300, 620, 300, 940, # 100
564
+ 660, 560, 620, 580, 440, 520, 380, 680, 520, 780, # 110
565
+ 560, 540, 480, 280, 600, 280, 600, 460, 558, 460, # 120
566
+ 220, 620, 400, 1000, 540, 540, 420, 1280, 660, 240, # 130
567
+ 1240, 460, 640, 460, 460, 220, 220, 400, 400, 460, # 140
568
+ 500, 1000, 440, 980, 520, 240, 900, 460, 480, 640, # 150
569
+ 320, 300, 620, 620, 620, 620, 600, 520, 420, 740, # 160
570
+ 420, 360, 600, 400, 740, 440, 320, 600, 372, 372, # 170
571
+ 340, 680, 600, 320, 320, 372, 420, 360, 930, 930, # 180
572
+ 930, 540, 680, 680, 680, 680, 680, 680, 1260, 740, # 190
573
+ 720, 720, 720, 720, 340, 340, 340, 340, 800, 740, # 200
574
+ 800, 800, 800, 800, 800, 600, 800, 780, 780, 780, # 210
575
+ 780, 640, 620, 660, 580, 580, 580, 580, 580, 580, # 220
576
+ 860, 520, 520, 520, 520, 520, 300, 300, 300, 300, # 230
577
+ 560, 660, 560, 560, 560, 560, 560, 600, 560, 680, # 240
578
+ 680, 680, 680, 540, 620, 540], # 250
579
+ [ # 21 Bookman-LightItalic
580
+ 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
581
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
582
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
583
+ 0, 0, 300, 320, 360, 620, 620, 800, 820, 200, # 30
584
+ 280, 280, 440, 600, 300, 320, 300, 600, 620, 620, # 40
585
+ 620, 620, 620, 620, 620, 620, 620, 620, 300, 300, # 50
586
+ 600, 600, 600, 540, 780, 700, 720, 720, 740, 680, # 60
587
+ 620, 760, 800, 320, 560, 720, 580, 860, 720, 760, # 70
588
+ 600, 780, 700, 640, 600, 720, 680, 960, 700, 660, # 80
589
+ 580, 260, 600, 260, 600, 500, 340, 620, 600, 480, # 90
590
+ 640, 540, 340, 560, 620, 280, 280, 600, 280, 880, # 100
591
+ 620, 540, 600, 560, 400, 540, 340, 620, 540, 880, # 110
592
+ 540, 600, 520, 360, 600, 380, 600, 460, 558, 460, # 120
593
+ 320, 620, 480, 1000, 620, 620, 440, 1180, 640, 180, # 130
594
+ 1180, 460, 580, 460, 460, 280, 280, 440, 440, 460, # 140
595
+ 500, 1000, 440, 980, 540, 180, 900, 460, 520, 660, # 150
596
+ 300, 320, 620, 620, 620, 620, 600, 620, 420, 740, # 160
597
+ 440, 300, 600, 320, 740, 440, 300, 600, 372, 372, # 170
598
+ 320, 620, 620, 300, 320, 372, 400, 300, 930, 930, # 180
599
+ 930, 540, 700, 700, 700, 700, 700, 700, 1220, 720, # 190
600
+ 680, 680, 680, 680, 320, 320, 320, 320, 740, 720, # 200
601
+ 760, 760, 760, 760, 760, 600, 760, 720, 720, 720, # 210
602
+ 720, 660, 600, 620, 620, 620, 620, 620, 620, 620, # 220
603
+ 880, 480, 540, 540, 540, 540, 280, 280, 280, 280, # 230
604
+ 540, 620, 540, 540, 540, 540, 540, 600, 540, 620, # 240
605
+ 620, 620, 620, 600, 600, 600], # 250
606
+ [ # 22 Helvetica-Narrow
607
+ 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
608
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
609
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
610
+ 0, 0, 228, 228, 291, 456, 456, 729, 547, 157, # 30
611
+ 273, 273, 319, 479, 228, 273, 228, 228, 456, 456, # 40
612
+ 456, 456, 456, 456, 456, 456, 456, 456, 228, 228, # 50
613
+ 479, 479, 479, 456, 832, 547, 547, 592, 592, 547, # 60
614
+ 501, 638, 592, 228, 410, 547, 456, 683, 592, 638, # 70
615
+ 547, 638, 592, 547, 501, 592, 547, 774, 547, 547, # 80
616
+ 501, 228, 228, 228, 385, 456, 273, 456, 456, 410, # 90
617
+ 456, 456, 228, 456, 456, 182, 182, 410, 182, 683, # 100
618
+ 456, 456, 456, 456, 273, 410, 228, 456, 410, 592, # 110
619
+ 410, 410, 410, 274, 213, 274, 479, 287, 558, 287, # 120
620
+ 182, 456, 273, 820, 456, 456, 273, 820, 547, 273, # 130
621
+ 820, 287, 501, 287, 287, 182, 182, 273, 273, 287, # 140
622
+ 456, 820, 273, 820, 410, 273, 774, 287, 410, 547, # 150
623
+ 228, 273, 456, 456, 456, 456, 213, 456, 273, 604, # 160
624
+ 303, 456, 479, 273, 604, 273, 273, 479, 273, 273, # 170
625
+ 273, 456, 440, 228, 273, 273, 299, 456, 684, 684, # 180
626
+ 684, 501, 547, 547, 547, 547, 547, 547, 820, 592, # 190
627
+ 547, 547, 547, 547, 228, 228, 228, 228, 592, 592, # 200
628
+ 638, 638, 638, 638, 638, 479, 638, 592, 592, 592, # 210
629
+ 592, 547, 547, 501, 456, 456, 456, 456, 456, 456, # 220
630
+ 729, 410, 456, 456, 456, 456, 228, 228, 228, 228, # 230
631
+ 456, 456, 456, 456, 456, 456, 456, 479, 501, 456, # 240
632
+ 456, 456, 456, 410, 456, 410], # 250
633
+ [ # 23 Helvetica-Narrow-Oblique
634
+ 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
635
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
636
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
637
+ 0, 0, 228, 228, 291, 456, 456, 729, 547, 157, # 30
638
+ 273, 273, 319, 479, 228, 273, 228, 228, 456, 456, # 40
639
+ 456, 456, 456, 456, 456, 456, 456, 456, 228, 228, # 50
640
+ 479, 479, 479, 456, 832, 547, 547, 592, 592, 547, # 60
641
+ 501, 638, 592, 228, 410, 547, 456, 683, 592, 638, # 70
642
+ 547, 638, 592, 547, 501, 592, 547, 774, 547, 547, # 80
643
+ 501, 228, 228, 228, 385, 456, 273, 456, 456, 410, # 90
644
+ 456, 456, 228, 456, 456, 182, 182, 410, 182, 683, # 100
645
+ 456, 456, 456, 456, 273, 410, 228, 456, 410, 592, # 110
646
+ 410, 410, 410, 274, 213, 274, 479, 287, 558, 287, # 120
647
+ 182, 456, 273, 820, 456, 456, 273, 820, 547, 273, # 130
648
+ 820, 287, 501, 287, 287, 182, 182, 273, 273, 287, # 140
649
+ 456, 820, 273, 820, 410, 273, 774, 287, 410, 547, # 150
650
+ 228, 273, 456, 456, 456, 456, 213, 456, 273, 604, # 160
651
+ 303, 456, 479, 273, 604, 273, 273, 479, 273, 273, # 170
652
+ 273, 456, 440, 228, 273, 273, 299, 456, 684, 684, # 180
653
+ 684, 501, 547, 547, 547, 547, 547, 547, 820, 592, # 190
654
+ 547, 547, 547, 547, 228, 228, 228, 228, 592, 592, # 200
655
+ 638, 638, 638, 638, 638, 479, 638, 592, 592, 592, # 210
656
+ 592, 547, 547, 501, 456, 456, 456, 456, 456, 456, # 220
657
+ 729, 410, 456, 456, 456, 456, 228, 228, 228, 228, # 230
658
+ 456, 456, 456, 456, 456, 456, 456, 479, 501, 456, # 240
659
+ 456, 456, 456, 410, 456, 410], # 250
660
+ [ # 24 Helvetica-Narrow-Bold
661
+ 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
662
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
663
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
664
+ 0, 0, 228, 273, 389, 456, 456, 729, 592, 195, # 30
665
+ 273, 273, 319, 479, 228, 273, 228, 228, 456, 456, # 40
666
+ 456, 456, 456, 456, 456, 456, 456, 456, 273, 273, # 50
667
+ 479, 479, 479, 501, 800, 592, 592, 592, 592, 547, # 60
668
+ 501, 638, 592, 228, 456, 592, 501, 683, 592, 638, # 70
669
+ 547, 638, 592, 547, 501, 592, 547, 774, 547, 547, # 80
670
+ 501, 273, 228, 273, 479, 456, 273, 456, 501, 456, # 90
671
+ 501, 456, 273, 501, 501, 228, 228, 456, 228, 729, # 100
672
+ 501, 501, 501, 501, 319, 456, 273, 501, 456, 638, # 110
673
+ 456, 456, 410, 319, 230, 319, 479, 287, 558, 287, # 120
674
+ 228, 456, 410, 820, 456, 456, 273, 820, 547, 273, # 130
675
+ 820, 287, 501, 287, 287, 228, 228, 410, 410, 287, # 140
676
+ 456, 820, 273, 820, 456, 273, 774, 287, 410, 547, # 150
677
+ 228, 273, 456, 456, 456, 456, 230, 456, 273, 604, # 160
678
+ 303, 456, 479, 273, 604, 273, 273, 479, 273, 273, # 170
679
+ 273, 501, 456, 228, 273, 273, 299, 456, 684, 684, # 180
680
+ 684, 501, 592, 592, 592, 592, 592, 592, 820, 592, # 190
681
+ 547, 547, 547, 547, 228, 228, 228, 228, 592, 592, # 200
682
+ 638, 638, 638, 638, 638, 479, 638, 592, 592, 592, # 210
683
+ 592, 547, 547, 501, 456, 456, 456, 456, 456, 456, # 220
684
+ 729, 456, 456, 456, 456, 456, 228, 228, 228, 228, # 230
685
+ 501, 501, 501, 501, 501, 501, 501, 479, 501, 501, # 240
686
+ 501, 501, 501, 456, 501, 456], # 250
687
+ [ # 25 Helvetica-Narrow-BoldOblique
688
+ 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
689
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
690
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
691
+ 0, 0, 228, 273, 389, 456, 456, 729, 592, 195, # 30
692
+ 273, 273, 319, 479, 228, 273, 228, 228, 456, 456, # 40
693
+ 456, 456, 456, 456, 456, 456, 456, 456, 273, 273, # 50
694
+ 479, 479, 479, 501, 800, 592, 592, 592, 592, 547, # 60
695
+ 501, 638, 592, 228, 456, 592, 501, 683, 592, 638, # 70
696
+ 547, 638, 592, 547, 501, 592, 547, 774, 547, 547, # 80
697
+ 501, 273, 228, 273, 479, 456, 273, 456, 501, 456, # 90
698
+ 501, 456, 273, 501, 501, 228, 228, 456, 228, 729, # 100
699
+ 501, 501, 501, 501, 319, 456, 273, 501, 456, 638, # 110
700
+ 456, 456, 410, 319, 230, 319, 479, 287, 558, 287, # 120
701
+ 228, 456, 410, 820, 456, 456, 273, 820, 547, 273, # 130
702
+ 820, 287, 501, 287, 287, 228, 228, 410, 410, 287, # 140
703
+ 456, 820, 273, 820, 456, 273, 774, 287, 410, 547, # 150
704
+ 228, 273, 456, 456, 456, 456, 230, 456, 273, 604, # 160
705
+ 303, 456, 479, 273, 604, 273, 273, 479, 273, 273, # 170
706
+ 273, 501, 456, 228, 273, 273, 299, 456, 684, 684, # 180
707
+ 684, 501, 592, 592, 592, 592, 592, 592, 820, 592, # 190
708
+ 547, 547, 547, 547, 228, 228, 228, 228, 592, 592, # 200
709
+ 638, 638, 638, 638, 638, 479, 638, 592, 592, 592, # 210
710
+ 592, 547, 547, 501, 456, 456, 456, 456, 456, 456, # 220
711
+ 729, 456, 456, 456, 456, 456, 228, 228, 228, 228, # 230
712
+ 501, 501, 501, 501, 501, 501, 501, 479, 501, 501, # 240
713
+ 501, 501, 501, 456, 501, 456], # 250
714
+ [ # 26 NewCenturySchlbk-Roman
715
+ 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
716
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
717
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
718
+ 0, 0, 278, 296, 389, 556, 556, 833, 815, 204, # 30
719
+ 333, 333, 500, 606, 278, 333, 278, 278, 556, 556, # 40
720
+ 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, # 50
721
+ 606, 606, 606, 444, 737, 722, 722, 722, 778, 722, # 60
722
+ 667, 778, 833, 407, 556, 778, 667, 944, 815, 778, # 70
723
+ 667, 778, 722, 630, 667, 815, 722, 981, 704, 704, # 80
724
+ 611, 333, 606, 333, 606, 500, 333, 556, 556, 444, # 90
725
+ 574, 500, 333, 537, 611, 315, 296, 593, 315, 889, # 100
726
+ 611, 500, 574, 556, 444, 463, 389, 611, 537, 778, # 110
727
+ 537, 537, 481, 333, 606, 333, 606, 606, 558, 606, # 120
728
+ 204, 556, 389, 1000, 500, 500, 333, 1000, 630, 259, # 130
729
+ 1000, 606, 611, 606, 606, 204, 204, 389, 389, 606, # 140
730
+ 556, 1000, 333, 1000, 463, 259, 833, 606, 481, 704, # 150
731
+ 278, 296, 556, 556, 556, 556, 606, 500, 333, 737, # 160
732
+ 334, 426, 606, 333, 737, 333, 333, 606, 333, 333, # 170
733
+ 333, 611, 606, 278, 333, 333, 300, 426, 834, 834, # 180
734
+ 834, 444, 722, 722, 722, 722, 722, 722, 1000, 722, # 190
735
+ 722, 722, 722, 722, 407, 407, 407, 407, 778, 815, # 200
736
+ 778, 778, 778, 778, 778, 606, 778, 815, 815, 815, # 210
737
+ 815, 704, 667, 574, 556, 556, 556, 556, 556, 556, # 220
738
+ 796, 444, 500, 500, 500, 500, 315, 315, 315, 315, # 230
739
+ 500, 611, 500, 500, 500, 500, 500, 606, 500, 611, # 240
740
+ 611, 611, 611, 537, 574, 537], # 250
741
+ [ # 27 NewCenturySchlbk-Italic
742
+ 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
743
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
744
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
745
+ 0, 0, 278, 333, 400, 556, 556, 833, 852, 278, # 30
746
+ 333, 333, 500, 606, 278, 333, 278, 606, 556, 556, # 40
747
+ 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, # 50
748
+ 606, 606, 606, 444, 747, 704, 722, 722, 778, 722, # 60
749
+ 667, 778, 833, 407, 611, 741, 667, 944, 815, 778, # 70
750
+ 667, 778, 741, 667, 685, 815, 704, 926, 704, 685, # 80
751
+ 667, 333, 606, 333, 606, 500, 333, 574, 556, 444, # 90
752
+ 611, 444, 333, 537, 611, 333, 315, 556, 333, 889, # 100
753
+ 611, 500, 574, 556, 444, 444, 352, 611, 519, 778, # 110
754
+ 500, 500, 463, 333, 606, 333, 606, 606, 558, 606, # 120
755
+ 204, 556, 389, 1000, 500, 500, 333, 1000, 667, 333, # 130
756
+ 981, 606, 667, 606, 606, 204, 204, 389, 389, 606, # 140
757
+ 500, 1000, 333, 950, 444, 333, 778, 606, 463, 685, # 150
758
+ 278, 333, 556, 556, 556, 556, 606, 500, 333, 747, # 160
759
+ 422, 426, 606, 333, 747, 333, 333, 606, 333, 333, # 170
760
+ 333, 611, 650, 278, 333, 333, 372, 426, 834, 834, # 180
761
+ 834, 444, 704, 704, 704, 704, 704, 704, 870, 722, # 190
762
+ 722, 722, 722, 722, 407, 407, 407, 407, 778, 815, # 200
763
+ 778, 778, 778, 778, 778, 606, 778, 815, 815, 815, # 210
764
+ 815, 685, 667, 556, 574, 574, 574, 574, 574, 574, # 220
765
+ 722, 444, 444, 444, 444, 444, 333, 333, 333, 333, # 230
766
+ 500, 611, 500, 500, 500, 500, 500, 606, 500, 611, # 240
767
+ 611, 611, 611, 500, 574, 500], # 250
768
+ [ # 28 NewCenturySchlbk-Bold
769
+ 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
770
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
771
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
772
+ 0, 0, 287, 296, 333, 574, 574, 833, 852, 241, # 30
773
+ 389, 389, 500, 606, 278, 333, 278, 278, 574, 574, # 40
774
+ 574, 574, 574, 574, 574, 574, 574, 574, 278, 278, # 50
775
+ 606, 606, 606, 500, 747, 759, 778, 778, 833, 759, # 60
776
+ 722, 833, 870, 444, 648, 815, 722, 981, 833, 833, # 70
777
+ 759, 833, 815, 667, 722, 833, 759, 981, 722, 722, # 80
778
+ 667, 389, 606, 389, 606, 500, 333, 611, 648, 556, # 90
779
+ 667, 574, 389, 611, 685, 370, 352, 667, 352, 963, # 100
780
+ 685, 611, 667, 648, 519, 500, 426, 685, 611, 889, # 110
781
+ 611, 611, 537, 389, 606, 389, 606, 606, 558, 606, # 120
782
+ 241, 574, 481, 1000, 500, 500, 333, 1000, 667, 333, # 130
783
+ 1000, 606, 667, 606, 606, 241, 241, 481, 481, 606, # 140
784
+ 500, 1000, 333, 1000, 500, 333, 907, 606, 537, 722, # 150
785
+ 287, 296, 574, 574, 574, 574, 606, 500, 333, 747, # 160
786
+ 367, 500, 606, 333, 747, 333, 333, 606, 344, 344, # 170
787
+ 333, 685, 747, 278, 333, 344, 367, 500, 861, 861, # 180
788
+ 861, 500, 759, 759, 759, 759, 759, 759, 981, 778, # 190
789
+ 759, 759, 759, 759, 444, 444, 444, 444, 833, 833, # 200
790
+ 833, 833, 833, 833, 833, 606, 833, 833, 833, 833, # 210
791
+ 833, 722, 759, 611, 611, 611, 611, 611, 611, 611, # 220
792
+ 870, 556, 574, 574, 574, 574, 370, 370, 370, 370, # 230
793
+ 611, 685, 611, 611, 611, 611, 611, 606, 611, 685, # 240
794
+ 685, 685, 685, 611, 667, 611], # 250
795
+ [ # 29 NewCenturySchlbk-BoldItalic
796
+ 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
797
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
798
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
799
+ 0, 0, 287, 333, 400, 574, 574, 889, 889, 287, # 30
800
+ 407, 407, 500, 606, 287, 333, 287, 278, 574, 574, # 40
801
+ 574, 574, 574, 574, 574, 574, 574, 574, 287, 287, # 50
802
+ 606, 606, 606, 481, 747, 741, 759, 759, 833, 741, # 60
803
+ 704, 815, 870, 444, 667, 778, 704, 944, 852, 833, # 70
804
+ 741, 833, 796, 685, 722, 833, 741, 944, 741, 704, # 80
805
+ 704, 407, 606, 407, 606, 500, 333, 667, 611, 537, # 90
806
+ 667, 519, 389, 611, 685, 389, 370, 648, 389, 944, # 100
807
+ 685, 574, 648, 630, 519, 481, 407, 685, 556, 833, # 110
808
+ 574, 519, 519, 407, 606, 407, 606, 606, 558, 606, # 120
809
+ 259, 574, 481, 1000, 500, 500, 333, 1167, 685, 278, # 130
810
+ 963, 606, 704, 606, 606, 259, 259, 481, 481, 606, # 140
811
+ 500, 1000, 333, 950, 481, 278, 852, 606, 519, 704, # 150
812
+ 287, 333, 574, 574, 574, 574, 606, 500, 333, 747, # 160
813
+ 412, 481, 606, 333, 747, 333, 333, 606, 344, 344, # 170
814
+ 333, 685, 650, 287, 333, 344, 356, 481, 861, 861, # 180
815
+ 861, 481, 741, 741, 741, 741, 741, 741, 889, 759, # 190
816
+ 741, 741, 741, 741, 444, 444, 444, 444, 833, 852, # 200
817
+ 833, 833, 833, 833, 833, 606, 833, 833, 833, 833, # 210
818
+ 833, 704, 741, 574, 667, 667, 667, 667, 667, 667, # 220
819
+ 815, 537, 519, 519, 519, 519, 389, 389, 389, 389, # 230
820
+ 574, 685, 574, 574, 574, 574, 574, 606, 574, 685, # 240
821
+ 685, 685, 685, 519, 648, 519], # 250
822
+ [ # 30 Palatino-Roman
823
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
824
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
825
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
826
+ 0, 0, 250, 278, 371, 500, 500, 840, 778, 208, # 30
827
+ 333, 333, 389, 606, 250, 333, 250, 606, 500, 500, # 40
828
+ 500, 500, 500, 500, 500, 500, 500, 500, 250, 250, # 50
829
+ 606, 606, 606, 444, 747, 778, 611, 709, 774, 611, # 60
830
+ 556, 763, 832, 337, 333, 726, 611, 946, 831, 786, # 70
831
+ 604, 786, 668, 525, 613, 778, 722, 1000, 667, 667, # 80
832
+ 667, 333, 606, 333, 606, 500, 333, 500, 553, 444, # 90
833
+ 611, 479, 333, 556, 582, 291, 234, 556, 291, 883, # 100
834
+ 582, 546, 601, 560, 395, 424, 326, 603, 565, 834, # 110
835
+ 516, 556, 500, 333, 606, 333, 606, 606, 558, 606, # 120
836
+ 278, 500, 500, 1000, 500, 500, 333, 1144, 525, 331, # 130
837
+ 998, 606, 667, 606, 606, 278, 278, 500, 500, 606, # 140
838
+ 500, 1000, 333, 979, 424, 331, 827, 606, 500, 667, # 150
839
+ 250, 278, 500, 500, 500, 500, 606, 500, 333, 747, # 160
840
+ 333, 500, 606, 333, 747, 333, 333, 606, 300, 300, # 170
841
+ 333, 603, 628, 250, 333, 300, 333, 500, 750, 750, # 180
842
+ 750, 444, 778, 778, 778, 778, 778, 778, 944, 709, # 190
843
+ 611, 611, 611, 611, 337, 337, 337, 337, 774, 831, # 200
844
+ 786, 786, 786, 786, 786, 606, 833, 778, 778, 778, # 210
845
+ 778, 667, 604, 556, 500, 500, 500, 500, 500, 500, # 220
846
+ 758, 444, 479, 479, 479, 479, 287, 287, 287, 287, # 230
847
+ 546, 582, 546, 546, 546, 546, 546, 606, 556, 603, # 240
848
+ 603, 603, 603, 556, 601, 556], # 250
849
+ [ # 31 Palatino-Italic
850
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
851
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
852
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
853
+ 0, 0, 250, 333, 500, 500, 500, 889, 778, 333, # 30
854
+ 333, 333, 389, 606, 250, 333, 250, 296, 500, 500, # 40
855
+ 500, 500, 500, 500, 500, 500, 500, 500, 250, 250, # 50
856
+ 606, 606, 606, 500, 747, 722, 611, 667, 778, 611, # 60
857
+ 556, 722, 778, 333, 333, 667, 556, 944, 778, 778, # 70
858
+ 611, 778, 667, 556, 611, 778, 722, 944, 722, 667, # 80
859
+ 667, 333, 606, 333, 606, 500, 333, 444, 463, 407, # 90
860
+ 500, 389, 278, 500, 500, 278, 278, 444, 278, 778, # 100
861
+ 556, 444, 500, 463, 389, 389, 333, 556, 500, 722, # 110
862
+ 500, 500, 444, 333, 606, 333, 606, 500, 558, 500, # 120
863
+ 278, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, # 130
864
+ 1028, 500, 667, 500, 500, 278, 278, 500, 500, 500, # 140
865
+ 500, 1000, 333, 1000, 389, 333, 669, 500, 444, 667, # 150
866
+ 250, 333, 500, 500, 500, 500, 606, 500, 333, 747, # 160
867
+ 333, 500, 606, 333, 747, 333, 333, 606, 300, 300, # 170
868
+ 333, 556, 500, 250, 333, 300, 333, 500, 750, 750, # 180
869
+ 750, 500, 722, 722, 722, 722, 722, 722, 941, 667, # 190
870
+ 611, 611, 611, 611, 333, 333, 333, 333, 778, 778, # 200
871
+ 778, 778, 778, 778, 778, 606, 778, 778, 778, 778, # 210
872
+ 778, 667, 611, 500, 444, 444, 444, 444, 444, 444, # 220
873
+ 638, 407, 389, 389, 389, 389, 278, 278, 278, 278, # 230
874
+ 444, 556, 444, 444, 444, 444, 444, 606, 444, 556, # 240
875
+ 556, 556, 556, 500, 500, 500], # 250
876
+ [ # 32 Palatino-Bold
877
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
878
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
879
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
880
+ 0, 0, 250, 278, 402, 500, 500, 889, 833, 227, # 30
881
+ 333, 333, 444, 606, 250, 333, 250, 296, 500, 500, # 40
882
+ 500, 500, 500, 500, 500, 500, 500, 500, 250, 250, # 50
883
+ 606, 606, 606, 444, 747, 778, 667, 722, 833, 611, # 60
884
+ 556, 833, 833, 389, 389, 778, 611, 1000, 833, 833, # 70
885
+ 611, 833, 722, 611, 667, 778, 778, 1000, 667, 667, # 80
886
+ 667, 333, 606, 333, 606, 500, 333, 500, 611, 444, # 90
887
+ 611, 500, 389, 556, 611, 333, 333, 611, 333, 889, # 100
888
+ 611, 556, 611, 611, 389, 444, 333, 611, 556, 833, # 110
889
+ 500, 556, 500, 310, 606, 310, 606, 606, 558, 606, # 120
890
+ 333, 500, 500, 1000, 500, 500, 333, 1000, 611, 389, # 130
891
+ 1000, 606, 667, 606, 606, 278, 278, 500, 500, 606, # 140
892
+ 500, 1000, 333, 998, 444, 389, 833, 606, 500, 667, # 150
893
+ 250, 278, 500, 500, 500, 500, 606, 500, 333, 747, # 160
894
+ 438, 500, 606, 333, 747, 333, 333, 606, 300, 300, # 170
895
+ 333, 611, 641, 250, 333, 300, 488, 500, 750, 750, # 180
896
+ 750, 444, 778, 778, 778, 778, 778, 778, 1000, 722, # 190
897
+ 611, 611, 611, 611, 389, 389, 389, 389, 833, 833, # 200
898
+ 833, 833, 833, 833, 833, 606, 833, 778, 778, 778, # 210
899
+ 778, 667, 611, 611, 500, 500, 500, 500, 500, 500, # 220
900
+ 778, 444, 500, 500, 500, 500, 333, 333, 333, 333, # 230
901
+ 556, 611, 556, 556, 556, 556, 556, 606, 556, 611, # 240
902
+ 611, 611, 611, 556, 611, 556], # 250
903
+ [ # 33 Palatino-BoldItalic
904
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
905
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
906
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
907
+ 0, 0, 250, 333, 500, 500, 500, 889, 833, 250, # 30
908
+ 333, 333, 444, 606, 250, 389, 250, 315, 500, 500, # 40
909
+ 500, 500, 500, 500, 500, 500, 500, 500, 250, 250, # 50
910
+ 606, 606, 606, 444, 833, 722, 667, 685, 778, 611, # 60
911
+ 556, 778, 778, 389, 389, 722, 611, 944, 778, 833, # 70
912
+ 667, 833, 722, 556, 611, 778, 667, 1000, 722, 611, # 80
913
+ 667, 333, 606, 333, 606, 500, 333, 556, 537, 444, # 90
914
+ 556, 444, 333, 500, 556, 333, 333, 556, 333, 833, # 100
915
+ 556, 556, 556, 537, 389, 444, 389, 556, 556, 833, # 110
916
+ 500, 556, 500, 333, 606, 333, 606, 606, 558, 606, # 120
917
+ 250, 500, 500, 1000, 556, 556, 333, 1000, 556, 333, # 130
918
+ 944, 606, 667, 606, 606, 278, 278, 500, 500, 606, # 140
919
+ 500, 1000, 333, 1000, 444, 333, 778, 606, 500, 611, # 150
920
+ 250, 333, 500, 500, 500, 500, 606, 556, 333, 747, # 160
921
+ 333, 500, 606, 389, 747, 333, 556, 606, 300, 300, # 170
922
+ 333, 556, 556, 250, 333, 300, 333, 500, 750, 750, # 180
923
+ 750, 444, 722, 722, 722, 722, 722, 722, 944, 685, # 190
924
+ 611, 611, 611, 611, 389, 389, 389, 389, 778, 778, # 200
925
+ 833, 833, 833, 833, 833, 606, 833, 778, 778, 778, # 210
926
+ 778, 611, 667, 556, 556, 556, 556, 556, 556, 556, # 220
927
+ 738, 444, 444, 444, 444, 444, 333, 333, 333, 333, # 230
928
+ 556, 556, 556, 556, 556, 556, 556, 606, 556, 556, # 240
929
+ 556, 556, 556, 556, 556, 556], # 250
930
+ [ # 34 ZapfChancery-MediumItalic
931
+ 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
932
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
933
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
934
+ 0, 0, 220, 280, 220, 440, 440, 680, 780, 160, # 30
935
+ 260, 220, 420, 520, 220, 280, 220, 340, 440, 440, # 40
936
+ 440, 440, 440, 440, 440, 440, 440, 440, 260, 240, # 50
937
+ 520, 520, 520, 380, 700, 620, 600, 520, 700, 620, # 60
938
+ 580, 620, 680, 380, 400, 660, 580, 840, 700, 600, # 70
939
+ 540, 600, 600, 460, 500, 740, 640, 880, 560, 560, # 80
940
+ 620, 240, 480, 320, 520, 500, 220, 420, 420, 340, # 90
941
+ 440, 340, 320, 400, 440, 240, 220, 440, 240, 620, # 100
942
+ 460, 400, 440, 400, 300, 320, 320, 460, 440, 680, # 110
943
+ 420, 400, 440, 240, 520, 240, 520, 600, 558, 600, # 120
944
+ 180, 440, 280, 1000, 460, 480, 340, 960, 460, 240, # 130
945
+ 820, 600, 620, 600, 600, 240, 240, 340, 360, 600, # 140
946
+ 500, 1000, 440, 1000, 320, 260, 560, 600, 440, 560, # 150
947
+ 220, 280, 440, 440, 440, 440, 520, 420, 360, 740, # 160
948
+ 260, 340, 520, 280, 740, 440, 300, 520, 264, 264, # 170
949
+ 300, 460, 500, 220, 300, 264, 260, 380, 660, 660, # 180
950
+ 660, 400, 620, 620, 620, 620, 620, 620, 740, 520, # 190
951
+ 620, 620, 620, 620, 380, 380, 380, 380, 700, 700, # 200
952
+ 600, 600, 600, 600, 600, 520, 660, 740, 740, 740, # 210
953
+ 740, 560, 540, 420, 420, 420, 420, 420, 420, 420, # 220
954
+ 540, 340, 340, 340, 340, 340, 240, 240, 240, 240, # 230
955
+ 400, 460, 400, 400, 400, 400, 400, 520, 440, 460, # 240
956
+ 460, 460, 460, 400, 440, 400], # 250
957
+ [ # 35 Helvetica-Condensed
958
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
959
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
960
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
961
+ 0, 0, 250, 333, 250, 500, 500, 833, 667, 250, # 30
962
+ 333, 333, 500, 500, 250, 333, 250, 278, 500, 500, # 40
963
+ 500, 500, 500, 500, 500, 500, 500, 500, 250, 250, # 50
964
+ 500, 500, 500, 500, 800, 556, 556, 556, 611, 500, # 60
965
+ 444, 611, 611, 278, 444, 556, 500, 778, 611, 611, # 70
966
+ 556, 611, 611, 556, 500, 611, 556, 833, 556, 556, # 80
967
+ 500, 333, 250, 333, 500, 500, 333, 444, 500, 444, # 90
968
+ 500, 444, 278, 500, 500, 222, 222, 444, 222, 778, # 100
969
+ 500, 500, 500, 500, 333, 444, 278, 500, 444, 667, # 110
970
+ 444, 444, 389, 274, 250, 274, 500, 333, 558, 333, # 120
971
+ 222, 500, 389, 1000, 500, 500, 333, 1111, 556, 278, # 130
972
+ 833, 333, 500, 333, 333, 222, 222, 389, 389, 333, # 140
973
+ 500, 1000, 333, 750, 444, 278, 722, 333, 389, 556, # 150
974
+ 250, 333, 500, 500, 500, 500, 250, 500, 333, 800, # 160
975
+ 300, 500, 500, 333, 800, 333, 250, 500, 300, 300, # 170
976
+ 333, 500, 440, 250, 333, 300, 300, 500, 750, 750, # 180
977
+ 750, 500, 556, 556, 556, 556, 556, 556, 833, 556, # 190
978
+ 500, 500, 500, 500, 278, 278, 278, 278, 611, 611, # 200
979
+ 611, 611, 611, 611, 611, 500, 611, 611, 611, 611, # 210
980
+ 611, 556, 556, 500, 444, 444, 444, 444, 444, 444, # 220
981
+ 667, 444, 444, 444, 444, 444, 222, 222, 222, 222, # 230
982
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, # 240
983
+ 500, 500, 500, 444, 500, 444], # 250
984
+ [ # 36 Helvetica-Condensed-Bold
985
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
986
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
987
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
988
+ 0, 0, 250, 333, 333, 500, 500, 833, 667, 250, # 30
989
+ 333, 333, 500, 500, 333, 333, 333, 278, 500, 500, # 40
990
+ 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, # 50
991
+ 500, 500, 500, 500, 833, 556, 556, 556, 611, 500, # 60
992
+ 500, 611, 611, 278, 444, 556, 500, 778, 611, 611, # 70
993
+ 556, 611, 611, 556, 500, 611, 556, 833, 556, 556, # 80
994
+ 500, 333, 250, 333, 500, 500, 333, 500, 500, 444, # 90
995
+ 500, 500, 278, 500, 500, 278, 278, 444, 278, 778, # 100
996
+ 500, 500, 500, 500, 333, 444, 278, 500, 444, 667, # 110
997
+ 444, 444, 389, 274, 250, 274, 500, 420, 558, 420, # 120
998
+ 278, 500, 500, 1000, 500, 500, 333, 1111, 556, 278, # 130
999
+ 833, 420, 500, 420, 420, 278, 278, 500, 500, 420, # 140
1000
+ 500, 1000, 333, 860, 444, 278, 722, 420, 389, 556, # 150
1001
+ 250, 333, 500, 500, 500, 500, 250, 500, 333, 830, # 160
1002
+ 300, 500, 500, 333, 830, 333, 333, 500, 300, 300, # 170
1003
+ 333, 500, 550, 333, 333, 300, 300, 500, 750, 750, # 180
1004
+ 750, 500, 556, 556, 556, 556, 556, 556, 778, 556, # 190
1005
+ 500, 500, 500, 500, 278, 278, 278, 278, 611, 611, # 200
1006
+ 611, 611, 611, 611, 611, 500, 611, 611, 611, 611, # 210
1007
+ 611, 556, 556, 500, 500, 500, 500, 500, 500, 500, # 220
1008
+ 722, 444, 500, 500, 500, 500, 278, 278, 278, 278, # 230
1009
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, # 240
1010
+ 500, 500, 500, 444, 500, 444], # 250
1011
+ [ # 37 Helvetica-Condensed-Oblique
1012
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
1013
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
1014
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
1015
+ 0, 0, 250, 333, 250, 500, 500, 833, 667, 250, # 30
1016
+ 333, 333, 500, 500, 250, 333, 250, 278, 500, 500, # 40
1017
+ 500, 500, 500, 500, 500, 500, 500, 500, 250, 250, # 50
1018
+ 500, 500, 500, 500, 800, 556, 556, 556, 611, 500, # 60
1019
+ 444, 611, 611, 278, 444, 556, 500, 778, 611, 611, # 70
1020
+ 556, 611, 611, 556, 500, 611, 556, 833, 556, 556, # 80
1021
+ 500, 333, 250, 333, 500, 500, 333, 444, 500, 444, # 90
1022
+ 500, 444, 278, 500, 500, 222, 222, 444, 222, 778, # 100
1023
+ 500, 500, 500, 500, 333, 444, 278, 500, 444, 667, # 110
1024
+ 444, 444, 389, 274, 250, 274, 500, 333, 558, 333, # 120
1025
+ 222, 500, 389, 1000, 500, 500, 333, 1111, 556, 278, # 130
1026
+ 833, 333, 500, 333, 333, 222, 222, 389, 389, 333, # 140
1027
+ 500, 1000, 333, 750, 444, 278, 722, 333, 389, 556, # 150
1028
+ 250, 333, 500, 500, 500, 500, 250, 500, 333, 800, # 160
1029
+ 300, 500, 500, 333, 800, 333, 250, 500, 300, 300, # 170
1030
+ 333, 500, 440, 250, 333, 300, 300, 500, 750, 750, # 180
1031
+ 750, 500, 556, 556, 556, 556, 556, 556, 833, 556, # 190
1032
+ 500, 500, 500, 500, 278, 278, 278, 278, 611, 611, # 200
1033
+ 611, 611, 611, 611, 611, 500, 611, 611, 611, 611, # 210
1034
+ 611, 556, 556, 500, 444, 444, 444, 444, 444, 444, # 220
1035
+ 667, 444, 444, 444, 444, 444, 222, 222, 222, 222, # 230
1036
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, # 240
1037
+ 500, 500, 500, 444, 500, 444], # 250
1038
+ [ # 38 Helvetica-Condensed-BoldObl
1039
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0
1040
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 10
1041
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 20
1042
+ 0, 0, 250, 333, 333, 500, 500, 833, 667, 250, # 30
1043
+ 333, 333, 500, 500, 333, 333, 333, 278, 500, 500, # 40
1044
+ 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, # 50
1045
+ 500, 500, 500, 500, 833, 556, 556, 556, 611, 500, # 60
1046
+ 500, 611, 611, 278, 444, 556, 500, 778, 611, 611, # 70
1047
+ 556, 611, 611, 556, 500, 611, 556, 833, 556, 556, # 80
1048
+ 500, 333, 250, 333, 500, 500, 333, 500, 500, 444, # 90
1049
+ 500, 500, 278, 500, 500, 278, 278, 444, 278, 778, # 100
1050
+ 500, 500, 500, 500, 333, 444, 278, 500, 444, 667, # 110
1051
+ 444, 444, 389, 274, 250, 274, 500, 420, 558, 420, # 120
1052
+ 278, 500, 500, 1000, 500, 500, 333, 1111, 556, 278, # 130
1053
+ 833, 420, 500, 420, 420, 278, 278, 500, 500, 420, # 140
1054
+ 500, 1000, 333, 860, 444, 278, 722, 420, 389, 556, # 150
1055
+ 250, 333, 500, 500, 500, 500, 250, 500, 333, 830, # 160
1056
+ 300, 500, 500, 333, 830, 333, 333, 500, 300, 300, # 170
1057
+ 333, 500, 550, 333, 333, 300, 300, 500, 750, 750, # 180
1058
+ 750, 500, 556, 556, 556, 556, 556, 556, 778, 556, # 190
1059
+ 500, 500, 500, 500, 278, 278, 278, 278, 611, 611, # 200
1060
+ 611, 611, 611, 611, 611, 500, 611, 611, 611, 611, # 210
1061
+ 611, 556, 556, 500, 500, 500, 500, 500, 500, 500, # 220
1062
+ 722, 444, 500, 500, 500, 500, 278, 278, 278, 278, # 230
1063
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, # 240
1064
+ 500, 500, 500, 444, 500, 444] # 250
1065
+ ]
1066
+
1067
+ FONT_ASCENDERS = [
1068
+ 718, 718, 718, 718, 683, 676, 683, 699, 629, 626,
1069
+ 629, 626, 718, 718, 740, 740, 740, 740, 725, 732,
1070
+ 717, 717, 718, 718, 718, 718, 737, 737, 737, 737,
1071
+ 726, 733, 720, 726, 714, 750, 750, 750, 750,
1072
+ # Japanese
1073
+ 875, # 41 HeiseiKakuGo-W5
1074
+ 857, # 42 HeiseiMin-W3
1075
+ # Korean
1076
+ 880, # 43 HYGoThic-Medium
1077
+ 880, # 44 HYSMyeongJo-Medium
1078
+ # Chinese Traditional
1079
+ 880, # 45 MHei-Medium
1080
+ 880, # 46 MSung-Light
1081
+ # Chinese Simplified
1082
+ 880 # 47 STSong-Light
1083
+ ]
1084
+
1085
+ FONT_CAP_HEIGHTS = [
1086
+ 718, 718, 718, 718, 662, 676, 653, 669,
1087
+ 562, 562, 562, 562, 718, 718, 740, 740,
1088
+ 740, 740, 681, 681, 681, 681, 718, 718,
1089
+ 718, 718, 722, 722, 722, 722, 692, 692,
1090
+ 681, 681, 708, 750, 750, 750, 750,
1091
+ # Japanese
1092
+ 718, # 41 HeiseiKakuGo-W5
1093
+ 718, # 42 HeiseiMin-W3
1094
+ # Korean
1095
+ 880, # 43 HYGoThic-Medium
1096
+ 880, # 44 HYSMyeongJo-Medium
1097
+ # Chinese Traditional
1098
+ 880, # 45 MHei-Medium
1099
+ 880, # 46 MSung-Light
1100
+ # Chinese Simplified
1101
+ 880 # 47 STSong-Light
1102
+ ]
1103
+
1104
+ FONT_DESCENDERS = [
1105
+ -207, -207, -207, -207, -217, -205, -205, -205,
1106
+ -157, -142, -157, -142, -207, -207, -192, -192,
1107
+ -185, -185, -212, -213, -228, -212, -207, -207,
1108
+ -207, -207, -205, -205, -205, -205, -281, -276,
1109
+ -258, -271, -314, -188, -189, -188, -189,
1110
+ # Japanese
1111
+ -125, # 41 HeiseiKakuGo-W5
1112
+ -143, # 42 HeiseiMin-W3
1113
+ # Korean
1114
+ -120, # 43 HYGoThic-Medium
1115
+ -120, # 44 HYSMyeongJo-Medium
1116
+ # Chinese Traditional
1117
+ -120, # 45 MHei-Medium
1118
+ -120, # 46 MSung-Light
1119
+ # Chinese Simplified
1120
+ -120 # 47 STSong-Light
1121
+ ]
1122
+
1123
+ FONT_FLAGS = [
1124
+ 32, # Helvetica
1125
+ 0, # Helvetica-Bold
1126
+ 96, # Helvetica-Oblique
1127
+ 0, # Helvetica-BoldOblique
1128
+ 0, # Times-Roman
1129
+ 0, # Times-Bold
1130
+ 0, # Times-Italic
1131
+ 0, # Times-BoldItalic
1132
+ 0, # Courier
1133
+ 0, # Courier-Bold
1134
+ 0, # Courier-Oblique
1135
+ 0, # Courier-BoldOblique
1136
+ 0, # Symbol
1137
+ 0, # ZapfDingbats
1138
+ # ------------- values above don't matter
1139
+ 32, # AvantGarde-Book
1140
+ 96, # AvantGarde-BookOblique
1141
+ 262176, # AvantGarde-Demi
1142
+ 262240, # AvantGarde-DemiOblique
1143
+ 262178, # Bookman-Demi
1144
+ 262242, # Bookman-DemiItalic
1145
+ 34, # Bookman-Light
1146
+ 98, # Bookman-LightItalic
1147
+ 32, # Helvetica-Narrow
1148
+ 96, # Helvetica-Narrow-Oblique
1149
+ 262176, # Helvetica-Narrow-Bold
1150
+ 262240, # Helvetica-Narrow-BoldOblique
1151
+ 34, # NewCenturySchlbk-Roman
1152
+ 98, # NewCenturySchlbk-Italic
1153
+ 262178, # NewCenturySchlbk-Bold
1154
+ 262242, # NewCenturySchlbk-BoldItalic
1155
+ 34, # Palatino-Roman
1156
+ 98, # Palatino-Italic
1157
+ 262178, # Palatino-Bold
1158
+ 262242, # Palatino-BoldItalic
1159
+ 98, # ZapfChancery-MediumItalic
1160
+ 32, # Helvetica-Condensed
1161
+ 262176, # Helvetica-Condensed-Bold
1162
+ 96, # Helvetica-Condensed-Oblique
1163
+ 262240, # Helvetica-Condensed-BoldObl
1164
+ # Japanese
1165
+ 4, # 41 HeiseiKakuGo-W5 (4)
1166
+ 6, # 42 HeiseiMin-W3 (6)
1167
+ # Korean
1168
+ 4, # 43 HYGoThic-Medium (39)
1169
+ 6, # 44 HYSMyeongJo-Medium
1170
+ # Chinese Traditional
1171
+ 4, # 45 MHei-Medium
1172
+ 6, # 46 MSung-Light
1173
+ # Chinese Simplified
1174
+ 6 # 47 STSong-Light
1175
+ ]
1176
+
1177
+ FONT_BBOXES = [
1178
+ [ -166, -225, 1000, 931 ],
1179
+ [ -170, -228, 1003, 962 ],
1180
+ [ -170, -225, 1116, 931 ],
1181
+ [ -174, -228, 1114, 962 ],
1182
+ [ -168, -218, 1000, 898 ],
1183
+ [ -168, -218, 1000, 935 ],
1184
+ [ -169, -217, 1010, 883 ],
1185
+ [ -200, -218, 996, 921 ],
1186
+ [ -28, -250, 628, 805 ],
1187
+ [ -113, -250, 749, 801 ],
1188
+ [ -28, -250, 742, 805 ],
1189
+ [ -56, -250, 868, 801 ],
1190
+ [ -180, -293, 1090, 1010 ], # Symbol
1191
+ [ -1, -143, 981, 820 ], # ZapfDingbats
1192
+ [ -113, -222, 1148, 955 ],
1193
+ [ -113, -222, 1279, 955 ],
1194
+ [ -123, -251, 1222, 1021 ],
1195
+ [ -123, -251, 1256, 1021 ],
1196
+ [ -194, -250, 1346, 934 ],
1197
+ [ -231, -250, 1333, 941 ],
1198
+ [ -188, -251, 1266, 908 ],
1199
+ [ -228, -250, 1269, 883 ],
1200
+ [ -136, -225, 820, 931 ],
1201
+ [ -139, -225, 915, 931 ],
1202
+ [ -139, -228, 822, 962 ],
1203
+ [ -143, -228, 913, 962 ],
1204
+ [ -195, -250, 1000, 965 ],
1205
+ [ -166, -250, 994, 958 ],
1206
+ [ -165, -250, 1000, 988 ],
1207
+ [ -205, -250, 1147, 991 ],
1208
+ [ -166, -283, 1021, 927 ],
1209
+ [ -170, -276, 1010, 918 ],
1210
+ [ -152, -266, 1000, 924 ],
1211
+ [ -170, -271, 1073, 926 ],
1212
+ [ -181, -314, 1065, 831 ],
1213
+ [ -174, -224, 1071, 990 ],
1214
+ [ -169, -228, 1091, 971 ],
1215
+ [ -174, -224, 1118, 990 ],
1216
+ [ -169, -228, 1141, 971 ],
1217
+ # Japanese
1218
+ [ -92, -250, 1010, 922 ], # 41 HeiseiKakuGo-W5 [-250, -125, 1000, 875]
1219
+ [ -123, -257, 1001, 910 ], # 42 HeiseiMin-W3 [-250, -143, 1000, 857 ]
1220
+ # Korean
1221
+ [ -6, -145, 1003, 880 ], # 43 HYGoThic-Medium [-150, -120, 1100, 880 ]
1222
+ [ 0, -148, 1001, 880 ], # 44 HYSMyeongJo-Medium [ -150, -120, 1100, 880]
1223
+ # Chinese Traditional
1224
+ [ -45, -250, 1015, 887 ], # 45 MHei-Medium
1225
+ [ -160, -249, 1015, 888 ], # 46 MSung-Light
1226
+ # Chinese Simplified
1227
+ [ -25, -254, 1000, 880 ] # 47 STSong-Light
1228
+ ]
1229
+
1230
+ FONT_ITALIC_ANGLES = [
1231
+ 0,
1232
+ 0,
1233
+ -12,
1234
+ -12,
1235
+ 0,
1236
+ 0,
1237
+ -15.5,
1238
+ -15,
1239
+ 0,
1240
+ 0,
1241
+ -12,
1242
+ -12,
1243
+ 0, # Symbol
1244
+ 0, # ZapfDingbats
1245
+ 0,
1246
+ -10.5,
1247
+ 0,
1248
+ -10.5,
1249
+ 0,
1250
+ -10,
1251
+ 0,
1252
+ -10,
1253
+ 0,
1254
+ -12,
1255
+ 0,
1256
+ -12,
1257
+ 0,
1258
+ -16,
1259
+ 0,
1260
+ -16,
1261
+ 0,
1262
+ -10,
1263
+ 0,
1264
+ -10,
1265
+ -14,
1266
+ 0,
1267
+ 0,
1268
+ -12,
1269
+ -12,
1270
+ # Japanese
1271
+ 0, # 41 HeiseiKakuGo-W5
1272
+ 0, # 42 HeiseiMin-W3
1273
+ # Korean
1274
+ 0, # 43 HYGoThic-Medium
1275
+ 0, # 44 HYSMyeongJo-Medium
1276
+ # Chinese Traditional
1277
+ 0, # 45 MHei-Medium
1278
+ 0, # 46 MSung-Light
1279
+ # Chinese Simplified
1280
+ 0 # 47 STSong-Light
1281
+ ]
1282
+
1283
+ # (Required) The width of vertical stems in characters.
1284
+ FONT_STEM_VS = [
1285
+ 0, # Helvetica
1286
+ 0, # Helvetica-Bold
1287
+ 0, # Helvetica-Oblique
1288
+ 0, # Helvetica-BoldOblique
1289
+ 0, # Times-Roman
1290
+ 0, # Times-Bold
1291
+ 0, # Times-Italic
1292
+ 0, # Times-BoldItalic
1293
+ 0, # Courier
1294
+ 0, # Courier-Bold
1295
+ 0, # Courier-Oblique
1296
+ 0, # Courier-BoldOblique
1297
+ 0, # Symbol
1298
+ 0, # ZapfDingbats
1299
+ # ------------- values above don't matter
1300
+ 70, # AvantGarde-Book
1301
+ 70, # AvantGarde-BookOblique
1302
+ 133, # AvantGarde-Demi
1303
+ 133, # AvantGarde-DemiOblique
1304
+ 167, # Bookman-Demi
1305
+ 172, # Bookman-DemiItalic
1306
+ 96, # Bookman-Light
1307
+ 96, # Bookman-LightItalic
1308
+ 88, # Helvetica-Narrow
1309
+ 88, # Helvetica-Narrow-Oblique
1310
+ 140, # Helvetica-Narrow-Bold
1311
+ 140, # Helvetica-Narrow-BoldOblique
1312
+ 92, # NewCenturySchlbk-Roman
1313
+ 80, # NewCenturySchlbk-Italic
1314
+ 154, # NewCenturySchlbk-Bold
1315
+ 150, # NewCenturySchlbk-BoldItalic
1316
+ 84, # Palatino-Roman
1317
+ 84, # Palatino-Italic
1318
+ 122, # Palatino-Bold
1319
+ 122, # Palatino-BoldItalic
1320
+ 70, # ZapfChancery-MediumItalic
1321
+ 79, # Helvetica-Condensed
1322
+ 130, # Helvetica-Condensed-Bold
1323
+ 79, # Helvetica-Condensed-Oblique
1324
+ 130, # Helvetica-Condensed-BoldObl
1325
+ # Japanese
1326
+ 93, # 41 HeiseiKakuGo-W5
1327
+ 93, # 42 HeiseiMin-W3
1328
+ # Korean
1329
+ 93, # 43 HYGoThic-Medium
1330
+ 93, # 44 HYSMyeongJo-Medium
1331
+ # Chinese Traditional
1332
+ 93, # 45 MHei-Medium
1333
+ 93, # 46 MSung-Light
1334
+ # Chinese Simplified
1335
+ 93 # 47 STSong-Light
1336
+ ]
1337
+
1338
+ FONT_X_HEIGHTS = [
1339
+ 523,
1340
+ 532,
1341
+ 523,
1342
+ 532,
1343
+ 450,
1344
+ 461,
1345
+ 441,
1346
+ 462,
1347
+ 426,
1348
+ 439,
1349
+ 426,
1350
+ 439,
1351
+ 0, # Symbol
1352
+ 0, # ZapfDingbats
1353
+ 547,
1354
+ 547,
1355
+ 555,
1356
+ 555,
1357
+ 502,
1358
+ 515,
1359
+ 484,
1360
+ 494,
1361
+ 523,
1362
+ 523,
1363
+ 532,
1364
+ 532,
1365
+ 464,
1366
+ 466,
1367
+ 475,
1368
+ 477,
1369
+ 469,
1370
+ 482,
1371
+ 471,
1372
+ 469,
1373
+ 438,
1374
+ 556,
1375
+ 564,
1376
+ 556,
1377
+ 564,
1378
+ # Japanese
1379
+ 500, # 41 HeiseiKakuGo-W5
1380
+ 500, # 42 HeiseiMin-W3
1381
+ # Korean
1382
+ 616, # 43 HYGoThic-Medium
1383
+ 616, # 44 HYSMyeongJo-Medium
1384
+ # Chinese Traditional
1385
+ 616, # 45 MHei-Medium
1386
+ 616, # 46 MSung-Light
1387
+ # Chinese Simplified
1388
+ 616 # 47 STSong-Light
1389
+ ]
1390
+
1391
+ # Stuff for CIDFontType2 only
1392
+
1393
+ FONT_MISSING_WIDTHS = [
1394
+ 0, # 0 Helvetica
1395
+ 0, # 1 Helvetica-Bold
1396
+ 0, # 2 Helvetica-Oblique
1397
+ 0, # 3 Helvetica-BoldOblique
1398
+ 0, # 4 Times-Roman
1399
+ 0, # 5 Times-Bold
1400
+ 0, # 6 Times-Italic
1401
+ 0, # 7 Times-BoldItalic
1402
+ 0, # 8 Courier
1403
+ 0, # 9 Courier-Bold
1404
+ 0, # 10 Courier-Oblique
1405
+ 0, # 11 Courier-BoldOblique
1406
+ 0, # 12 Symbol
1407
+ 0, # 13 ZapfDingbats
1408
+
1409
+ 0, # 14 AvantGarde-Book
1410
+ 0, # 15 AvantGarde-BookOblique
1411
+ 0, # 16 AvantGarde-Demi
1412
+ 0, # 17 AvantGarde-DemiOblique
1413
+ 0, # 18 Bookman-Demi
1414
+ 0, # 19 Bookman-DemiItalic
1415
+ 0, # 20 Bookman-Light
1416
+ 0, # 21 Bookman-LightItalic
1417
+ 0, # 22 Helvetica-Narrow
1418
+ 0, # 23 Helvetica-Narrow-Oblique
1419
+ 0, # 24 Helvetica-Narrow-Bold
1420
+ 0, # 25 Helvetica-Narrow-BoldOblique
1421
+ 0, # 26 NewCenturySchlbk-Roman
1422
+ 0, # 27 NewCenturySchlbk-Italic
1423
+ 0, # 28 NewCenturySchlbk-Bold
1424
+ 0, # 29 NewCenturySchlbk-BoldItalic
1425
+ 0, # 30 Palatino-Roman
1426
+ 0, # 31 Palatino-Italic
1427
+ 0, # 32 Palatino-Bold
1428
+ 0, # 33 Palatino-BoldItalic
1429
+ 0, # 34 ZapfChancery-MediumItalic
1430
+
1431
+ 0, # 35 Helvetica-Condensed
1432
+ 0, # 36 Helvetica-Condensed-Bold
1433
+ 0, # 37 Helvetica-Condensed-Oblique
1434
+ 0, # 38 Helvetica-Condensed-BoldObl
1435
+
1436
+ # Japanese
1437
+ 500, # 41 HeiseiKakuGo-W5
1438
+ 500, # 42 HeiseiMin-W3
1439
+ # Korean
1440
+ 500, # 43 HYGoThic-Medium
1441
+ 500, # 44 HYSMyeongJo-Medium
1442
+ # Chinese Traditional
1443
+ 500, # 45 MHei-Medium
1444
+ 500, # 46 MSung-Light
1445
+ # Chinese Simplified
1446
+ 500 # 47 STSong-Light
1447
+ ]
1448
+
1449
+ FONT_STEM_HS = [
1450
+ 0, # 0 Helvetica
1451
+ 0, # 1 Helvetica-Bold
1452
+ 0, # 2 Helvetica-Oblique
1453
+ 0, # 3 Helvetica-BoldOblique
1454
+ 0, # 4 Times-Roman
1455
+ 0, # 5 Times-Bold
1456
+ 0, # 6 Times-Italic
1457
+ 0, # 7 Times-BoldItalic
1458
+ 0, # 8 Courier
1459
+ 0, # 9 Courier-Bold
1460
+ 0, # 10 Courier-Oblique
1461
+ 0, # 11 Courier-BoldOblique
1462
+ 0, # 12 Symbol
1463
+ 0, # 13 ZapfDingbats
1464
+
1465
+ 0, # 14 AvantGarde-Book
1466
+ 0, # 15 AvantGarde-BookOblique
1467
+ 0, # 16 AvantGarde-Demi
1468
+ 0, # 17 AvantGarde-DemiOblique
1469
+ 0, # 18 Bookman-Demi
1470
+ 0, # 19 Bookman-DemiItalic
1471
+ 0, # 20 Bookman-Light
1472
+ 0, # 21 Bookman-LightItalic
1473
+ 0, # 22 Helvetica-Narrow
1474
+ 0, # 23 Helvetica-Narrow-Oblique
1475
+ 0, # 24 Helvetica-Narrow-Bold
1476
+ 0, # 25 Helvetica-Narrow-BoldOblique
1477
+ 0, # 26 NewCenturySchlbk-Roman
1478
+ 0, # 27 NewCenturySchlbk-Italic
1479
+ 0, # 28 NewCenturySchlbk-Bold
1480
+ 0, # 29 NewCenturySchlbk-BoldItalic
1481
+ 0, # 30 Palatino-Roman
1482
+ 0, # 31 Palatino-Italic
1483
+ 0, # 32 Palatino-Bold
1484
+ 0, # 33 Palatino-BoldItalic
1485
+ 0, # 34 ZapfChancery-MediumItalic
1486
+
1487
+ 0, # 35 Helvetica-Condensed
1488
+ 0, # 36 Helvetica-Condensed-Bold
1489
+ 0, # 37 Helvetica-Condensed-Oblique
1490
+ 0, # 38 Helvetica-Condensed-BoldObl
1491
+
1492
+ # Japanese
1493
+ 93, # 41 HeiseiKakuGo-W5
1494
+ 31, # 42 HeiseiMin-W3
1495
+ # Korean
1496
+ 93, # 43 HYGoThic-Medium
1497
+ 93, # 44 HYSMyeongJo-Medium
1498
+ # Chinese Traditional
1499
+ 93, # 45 MHei-Medium
1500
+ 93, # 46 MSung-Light
1501
+ # Chinese Simplified
1502
+ 93 # 47 STSong-Light
1503
+ ]
1504
+
1505
+ FONT_LEADINGS = [
1506
+ 0, # 0 Helvetica
1507
+ 0, # 1 Helvetica-Bold
1508
+ 0, # 2 Helvetica-Oblique
1509
+ 0, # 3 Helvetica-BoldOblique
1510
+ 0, # 4 Times-Roman
1511
+ 0, # 5 Times-Bold
1512
+ 0, # 6 Times-Italic
1513
+ 0, # 7 Times-BoldItalic
1514
+ 0, # 8 Courier
1515
+ 0, # 9 Courier-Bold
1516
+ 0, # 10 Courier-Oblique
1517
+ 0, # 11 Courier-BoldOblique
1518
+ 0, # 12 Symbol
1519
+ 0, # 13 ZapfDingbats
1520
+
1521
+ 0, # 14 AvantGarde-Book
1522
+ 0, # 15 AvantGarde-BookOblique
1523
+ 0, # 16 AvantGarde-Demi
1524
+ 0, # 17 AvantGarde-DemiOblique
1525
+ 0, # 18 Bookman-Demi
1526
+ 0, # 19 Bookman-DemiItalic
1527
+ 0, # 20 Bookman-Light
1528
+ 0, # 21 Bookman-LightItalic
1529
+ 0, # 22 Helvetica-Narrow
1530
+ 0, # 23 Helvetica-Narrow-Oblique
1531
+ 0, # 24 Helvetica-Narrow-Bold
1532
+ 0, # 25 Helvetica-Narrow-BoldOblique
1533
+ 0, # 26 NewCenturySchlbk-Roman
1534
+ 0, # 27 NewCenturySchlbk-Italic
1535
+ 0, # 28 NewCenturySchlbk-Bold
1536
+ 0, # 29 NewCenturySchlbk-BoldItalic
1537
+ 0, # 30 Palatino-Roman
1538
+ 0, # 31 Palatino-Italic
1539
+ 0, # 32 Palatino-Bold
1540
+ 0, # 33 Palatino-BoldItalic
1541
+ 0, # 34 ZapfChancery-MediumItalic
1542
+
1543
+ 0, # 35 Helvetica-Condensed
1544
+ 0, # 36 Helvetica-Condensed-Bold
1545
+ 0, # 37 Helvetica-Condensed-Oblique
1546
+ 0, # 38 Helvetica-Condensed-BoldObl
1547
+
1548
+ # Japanese
1549
+ 250, # 41 HeiseiKakuGo-W5
1550
+ 250, # 42 HeiseiMin-W3
1551
+ # Korean
1552
+ 250, # 43 HYGoThic-Medium
1553
+ 250, # 44 HYSMyeongJo-Medium
1554
+ # Chinese Traditional
1555
+ 250, # 45 MHei-Medium
1556
+ 250, # 46 MSung-Light
1557
+ # Chinese Simplified
1558
+ 250 # 47 STSong-Light
1559
+ ]
1560
+
1561
+ FONT_MAX_WIDTHS = [
1562
+ 0, # 0 Helvetica
1563
+ 0, # 1 Helvetica-Bold
1564
+ 0, # 2 Helvetica-Oblique
1565
+ 0, # 3 Helvetica-BoldOblique
1566
+ 0, # 4 Times-Roman
1567
+ 0, # 5 Times-Bold
1568
+ 0, # 6 Times-Italic
1569
+ 0, # 7 Times-BoldItalic
1570
+ 0, # 8 Courier
1571
+ 0, # 9 Courier-Bold
1572
+ 0, # 10 Courier-Oblique
1573
+ 0, # 11 Courier-BoldOblique
1574
+ 0, # 12 Symbol
1575
+ 0, # 13 ZapfDingbats
1576
+
1577
+ 0, # 14 AvantGarde-Book
1578
+ 0, # 15 AvantGarde-BookOblique
1579
+ 0, # 16 AvantGarde-Demi
1580
+ 0, # 17 AvantGarde-DemiOblique
1581
+ 0, # 18 Bookman-Demi
1582
+ 0, # 19 Bookman-DemiItalic
1583
+ 0, # 20 Bookman-Light
1584
+ 0, # 21 Bookman-LightItalic
1585
+ 0, # 22 Helvetica-Narrow
1586
+ 0, # 23 Helvetica-Narrow-Oblique
1587
+ 0, # 24 Helvetica-Narrow-Bold
1588
+ 0, # 25 Helvetica-Narrow-BoldOblique
1589
+ 0, # 26 NewCenturySchlbk-Roman
1590
+ 0, # 27 NewCenturySchlbk-Italic
1591
+ 0, # 28 NewCenturySchlbk-Bold
1592
+ 0, # 29 NewCenturySchlbk-BoldItalic
1593
+ 0, # 30 Palatino-Roman
1594
+ 0, # 31 Palatino-Italic
1595
+ 0, # 32 Palatino-Bold
1596
+ 0, # 33 Palatino-BoldItalic
1597
+ 0, # 34 ZapfChancery-MediumItalic
1598
+
1599
+ 0, # 35 Helvetica-Condensed
1600
+ 0, # 36 Helvetica-Condensed-Bold
1601
+ 0, # 37 Helvetica-Condensed-Oblique
1602
+ 0, # 38 Helvetica-Condensed-BoldObl
1603
+
1604
+ # Japanese
1605
+ 1000, # 41 HeiseiKakuGo-W5
1606
+ 1000, # 42 HeiseiMin-W3
1607
+ # Korean
1608
+ 1000, # 43 HYGoThic-Medium
1609
+ 1000, # 44 HYSMyeongJo-Medium
1610
+ # Chinese Traditional
1611
+ 1000, # 45 MHei-Medium
1612
+ 1000, # 46 MSung-Light
1613
+ # Chinese Simplified
1614
+ 1000 # 47 STSong-Light
1615
+ ]
1616
+
1617
+ FONT_AVG_WIDTHS = [
1618
+ 0, # 0 Helvetica
1619
+ 0, # 1 Helvetica-Bold
1620
+ 0, # 2 Helvetica-Oblique
1621
+ 0, # 3 Helvetica-BoldOblique
1622
+ 0, # 4 Times-Roman
1623
+ 0, # 5 Times-Bold
1624
+ 0, # 6 Times-Italic
1625
+ 0, # 7 Times-BoldItalic
1626
+ 0, # 8 Courier
1627
+ 0, # 9 Courier-Bold
1628
+ 0, # 10 Courier-Oblique
1629
+ 0, # 11 Courier-BoldOblique
1630
+ 0, # 12 Symbol
1631
+ 0, # 13 ZapfDingbats
1632
+
1633
+ 0, # 14 AvantGarde-Book
1634
+ 0, # 15 AvantGarde-BookOblique
1635
+ 0, # 16 AvantGarde-Demi
1636
+ 0, # 17 AvantGarde-DemiOblique
1637
+ 0, # 18 Bookman-Demi
1638
+ 0, # 19 Bookman-DemiItalic
1639
+ 0, # 20 Bookman-Light
1640
+ 0, # 21 Bookman-LightItalic
1641
+ 0, # 22 Helvetica-Narrow
1642
+ 0, # 23 Helvetica-Narrow-Oblique
1643
+ 0, # 24 Helvetica-Narrow-Bold
1644
+ 0, # 25 Helvetica-Narrow-BoldOblique
1645
+ 0, # 26 NewCenturySchlbk-Roman
1646
+ 0, # 27 NewCenturySchlbk-Italic
1647
+ 0, # 28 NewCenturySchlbk-Bold
1648
+ 0, # 29 NewCenturySchlbk-BoldItalic
1649
+ 0, # 30 Palatino-Roman
1650
+ 0, # 31 Palatino-Italic
1651
+ 0, # 32 Palatino-Bold
1652
+ 0, # 33 Palatino-BoldItalic
1653
+ 0, # 34 ZapfChancery-MediumItalic
1654
+
1655
+ 0, # 35 Helvetica-Condensed
1656
+ 0, # 36 Helvetica-Condensed-Bold
1657
+ 0, # 37 Helvetica-Condensed-Oblique
1658
+ 0, # 38 Helvetica-Condensed-BoldObl
1659
+
1660
+ # Japanese
1661
+ 689, # 41 HeiseiKakuGo-W5
1662
+ 702, # 42 HeiseiMin-W3
1663
+ # Korean
1664
+ 1000, # 43 HYGoThic-Medium
1665
+ 1000, # 44 HYSMyeongJo-Medium
1666
+ # Chinese Traditional
1667
+ 1000, # 45 MHei-Medium
1668
+ 1000, # 46 MSung-Light
1669
+ # Chinese Simplified
1670
+ 1000 # 47 STSong-Light
1671
+ ]
1672
+
1673
+ UNDERLINE_POSITION = -100
1674
+ UNDERLINE_THICKNESS = 50
1675
+
1676
+ # for /W array in /DescendantFonts spec
1677
+ CID_FONT_WIDTHS = [
1678
+ '', # 0 Helvetica
1679
+ '', # 1 Helvetica-Bold
1680
+ '', # 2 Helvetica-Oblique
1681
+ '', # 3 Helvetica-BoldOblique
1682
+ '', # 4 Times-Roman
1683
+ '', # 5 Times-Bold
1684
+ '', # 6 Times-Italic
1685
+ '', # 7 Times-BoldItalic
1686
+ '', # 8 Courier
1687
+ '', # 9 Courier-Bold
1688
+ '', # 10 Courier-Oblique
1689
+ '', # 11 Courier-BoldOblique
1690
+ '', # 12 Symbol
1691
+ '', # 13 ZapfDingbats
1692
+
1693
+ '', # 14 AvantGarde-Book
1694
+ '', # 15 AvantGarde-BookOblique
1695
+ '', # 16 AvantGarde-Demi
1696
+ '', # 17 AvantGarde-DemiOblique
1697
+ '', # 18 Bookman-Demi
1698
+ '', # 19 Bookman-DemiItalic
1699
+ '', # 20 Bookman-Light
1700
+ '', # 21 Bookman-LightItalic
1701
+ '', # 22 Helvetica-Narrow
1702
+ '', # 23 Helvetica-Narrow-Oblique
1703
+ '', # 24 Helvetica-Narrow-Bold
1704
+ '', # 25 Helvetica-Narrow-BoldOblique
1705
+ '', # 26 NewCenturySchlbk-Roman
1706
+ '', # 27 NewCenturySchlbk-Italic
1707
+ '', # 28 NewCenturySchlbk-Bold
1708
+ '', # 29 NewCenturySchlbk-BoldItalic
1709
+ '', # 30 Palatino-Roman
1710
+ '', # 31 Palatino-Italic
1711
+ '', # 32 Palatino-Bold
1712
+ '', # 33 Palatino-BoldItalic
1713
+ '', # 34 ZapfChancery-MediumItalic
1714
+
1715
+ '', # 35 Helvetica-Condensed
1716
+ '', # 36 Helvetica-Condensed-Bold
1717
+ '', # 37 Helvetica-Condensed-Oblique
1718
+ '', # 38 Helvetica-Condensed-BoldObl
1719
+ # Japanese
1720
+ '[ 1 95 500 231 632 500 ]', # 41 HeiseiKakuGo-W5 - OK
1721
+ '[ 1 95 500 231 632 500 ]', # 42 HeiseiMin-W3 - OK
1722
+ # Korean
1723
+ '[ 1 95 500 8094 8190 500 ]', # 43 HYGoThic-Medium - OK
1724
+ '[ 1 95 500 8094 8190 500 ]', # 44 HYSMyeongJo-Medium - OK
1725
+ # Chinese Traditional
1726
+ '[ 1 95 500 13648 13742 500 ]', # 45 MHei-Medium - OK
1727
+ '[ 1 95 500 13648 13742 500 ]', # 46 MSung-Light - OK
1728
+ # Chinese Simplified
1729
+ '[ 1 95 500 814 939 500 7712 [ 500 ] 7716 [ 500 ] ]' # 47 STSong-Light - OK
1730
+ ]
1731
+
1732
+ # for /CIDSystemInfo << >>
1733
+ CID_SYS_INFO = [
1734
+ '', # 0 Helvetica
1735
+ '', # 1 Helvetica-Bold
1736
+ '', # 2 Helvetica-Oblique
1737
+ '', # 3 Helvetica-BoldOblique
1738
+ '', # 4 Times-Roman
1739
+ '', # 5 Times-Bold
1740
+ '', # 6 Times-Italic
1741
+ '', # 7 Times-BoldItalic
1742
+ '', # 8 Courier
1743
+ '', # 9 Courier-Bold
1744
+ '', # 10 Courier-Oblique
1745
+ '', # 11 Courier-BoldOblique
1746
+ '', # 12 Symbol
1747
+ '', # 13 ZapfDingbats
1748
+
1749
+ '', # 14 AvantGarde-Book
1750
+ '', # 15 AvantGarde-BookOblique
1751
+ '', # 16 AvantGarde-Demi
1752
+ '', # 17 AvantGarde-DemiOblique
1753
+ '', # 18 Bookman-Demi
1754
+ '', # 19 Bookman-DemiItalic
1755
+ '', # 20 Bookman-Light
1756
+ '', # 21 Bookman-LightItalic
1757
+ '', # 22 Helvetica-Narrow
1758
+ '', # 23 Helvetica-Narrow-Oblique
1759
+ '', # 24 Helvetica-Narrow-Bold
1760
+ '', # 25 Helvetica-Narrow-BoldOblique
1761
+ '', # 26 NewCenturySchlbk-Roman
1762
+ '', # 27 NewCenturySchlbk-Italic
1763
+ '', # 28 NewCenturySchlbk-Bold
1764
+ '', # 29 NewCenturySchlbk-BoldItalic
1765
+ '', # 30 Palatino-Roman
1766
+ '', # 31 Palatino-Italic
1767
+ '', # 32 Palatino-Bold
1768
+ '', # 33 Palatino-BoldItalic
1769
+ '', # 34 ZapfChancery-MediumItalic
1770
+
1771
+ '', # 35 Helvetica-Condensed
1772
+ '', # 36 Helvetica-Condensed-Bold
1773
+ '', # 37 Helvetica-Condensed-Oblique
1774
+ '', # 38 Helvetica-Condensed-BoldObl
1775
+ # Japanese
1776
+ '/Registry (Adobe) /Ordering (Japan1) /Supplement 2', # 41 HeiseiKakuGo-W5
1777
+ '/Registry (Adobe) /Ordering (Japan1) /Supplement 2', # 42 HeiseiMin-W3
1778
+ # Korean
1779
+ '/Registry (Adobe) /Ordering (Korea1) /Supplement 1', # 43 HYGoThic-Medium
1780
+ '/Registry (Adobe) /Ordering (Korea1) /Supplement 1', # 44 HYSMyeongJo-Medium
1781
+ # Chinese Traditional
1782
+ '/Registry (Adobe) /Ordering (CNS1) /Supplement 0', # 45 MHei-Medium
1783
+ '/Registry (Adobe) /Ordering (CNS1) /Supplement 0', # 46 MSung-Light
1784
+ # Chinese Simplified
1785
+ '/Registry (Adobe) /Ordering (GB1) /Supplement 2' # 47 STSong-Light
1786
+ ]
1787
+
1788
+ # Currently contains only /Panose <....> for font descripter in CJK fonts
1789
+ FONT_STYLE_LIST = [
1790
+ '', # 0 Helvetica
1791
+ '', # 1 Helvetica-Bold
1792
+ '', # 2 Helvetica-Oblique
1793
+ '', # 3 Helvetica-BoldOblique
1794
+ '', # 4 Times-Roman
1795
+ '', # 5 Times-Bold
1796
+ '', # 6 Times-Italic
1797
+ '', # 7 Times-BoldItalic
1798
+ '', # 8 Courier
1799
+ '', # 9 Courier-Bold
1800
+ '', # 10 Courier-Oblique
1801
+ '', # 11 Courier-BoldOblique
1802
+ '', # 12 Symbol
1803
+ '', # 13 ZapfDingbats
1804
+
1805
+ '', # 14 AvantGarde-Book
1806
+ '', # 15 AvantGarde-BookOblique
1807
+ '', # 16 AvantGarde-Demi
1808
+ '', # 17 AvantGarde-DemiOblique
1809
+ '', # 18 Bookman-Demi
1810
+ '', # 19 Bookman-DemiItalic
1811
+ '', # 20 Bookman-Light
1812
+ '', # 21 Bookman-LightItalic
1813
+ '', # 22 Helvetica-Narrow
1814
+ '', # 23 Helvetica-Narrow-Oblique
1815
+ '', # 24 Helvetica-Narrow-Bold
1816
+ '', # 25 Helvetica-Narrow-BoldOblique
1817
+ '', # 26 NewCenturySchlbk-Roman
1818
+ '', # 27 NewCenturySchlbk-Italic
1819
+ '', # 28 NewCenturySchlbk-Bold
1820
+ '', # 29 NewCenturySchlbk-BoldItalic
1821
+ '', # 30 Palatino-Roman
1822
+ '', # 31 Palatino-Italic
1823
+ '', # 32 Palatino-Bold
1824
+ '', # 33 Palatino-BoldItalic
1825
+ '', # 34 ZapfChancery-MediumItalic
1826
+
1827
+ '', # 35 Helvetica-Condensed
1828
+ '', # 36 Helvetica-Condensed-Bold
1829
+ '', # 37 Helvetica-Condensed-Oblique
1830
+ '', # 38 Helvetica-Condensed-BoldObl
1831
+ # Panose will affect font substitution on platforms with native OS fonts,
1832
+ # and seems to override font names specifying the Acrobat Resource's CID fonts.
1833
+ # For example, on Windows 95-J, MSGothic and MSMincho will substitutes the fonts,
1834
+ # and if the /Panose below are reversed between HeiseiKakuGo and HeiseiMin,
1835
+ # the subsituted MS... fonts get reversed. }
1836
+ # Japanese
1837
+ '/Panose <0801020b0600000000000000>', # 41 HeiseiKakuGo-W5
1838
+ '/Panose <010502020400000000000000>', # 42 HeiseiMin-W3
1839
+ # Korean
1840
+ '/Panose <0801020b0600000000000000>', # 43 HYGoThic-Medium <010502020609000000000000>
1841
+ '/Panose <010502020400000000000000>', # 44 HYSMyeongJo-Medium
1842
+ # Chinese Traditional
1843
+ '/Panose <0801020b0600000000000000>', # 45 MHei-Medium
1844
+ '/Panose <010502020400000000000000>', # 46 MSung-Light
1845
+ # Chinese Simplified
1846
+ '/Panose <010502020400000000000000>' # 47 STSong-Light
1847
+ ]
1848
+
1849
+ GLYPHS = {
1850
+ 0x0041 => 'A',
1851
+ 0x00C6 => 'AE',
1852
+ 0x01FC => 'AEacute',
1853
+ 0xF7E6 => 'AEsmall',
1854
+ 0x00C1 => 'Aacute',
1855
+ 0xF7E1 => 'Aacutesmall',
1856
+ 0x0102 => 'Abreve',
1857
+ 0x00C2 => 'Acircumflex',
1858
+ 0xF7E2 => 'Acircumflexsmall',
1859
+ 0xF6C9 => 'Acute',
1860
+ 0xF7B4 => 'Acutesmall',
1861
+ 0x00C4 => 'Adieresis',
1862
+ 0xF7E4 => 'Adieresissmall',
1863
+ 0x00C0 => 'Agrave',
1864
+ 0xF7E0 => 'Agravesmall',
1865
+ 0x0391 => 'Alpha',
1866
+ 0x0386 => 'Alphatonos',
1867
+ 0x0100 => 'Amacron',
1868
+ 0x0104 => 'Aogonek',
1869
+ 0x00C5 => 'Aring',
1870
+ 0x01FA => 'Aringacute',
1871
+ 0xF7E5 => 'Aringsmall',
1872
+ 0xF761 => 'Asmall',
1873
+ 0x00C3 => 'Atilde',
1874
+ 0xF7E3 => 'Atildesmall',
1875
+ 0x0042 => 'B',
1876
+ 0x0392 => 'Beta',
1877
+ 0xF6F4 => 'Brevesmall',
1878
+ 0xF762 => 'Bsmall',
1879
+ 0x0043 => 'C',
1880
+ 0x0106 => 'Cacute',
1881
+ 0xF6CA => 'Caron',
1882
+ 0xF6F5 => 'Caronsmall',
1883
+ 0x010C => 'Ccaron',
1884
+ 0x00C7 => 'Ccedilla',
1885
+ 0xF7E7 => 'Ccedillasmall',
1886
+ 0x0108 => 'Ccircumflex',
1887
+ 0x010A => 'Cdotaccent',
1888
+ 0xF7B8 => 'Cedillasmall',
1889
+ 0x03A7 => 'Chi',
1890
+ 0xF6F6 => 'Circumflexsmall',
1891
+ 0xF763 => 'Csmall',
1892
+ 0x0044 => 'D',
1893
+ 0x010E => 'Dcaron',
1894
+ 0x0110 => 'Dcroat',
1895
+ 0x2206 => 'Delta',
1896
+ 0x0394 => 'Delta',
1897
+ 0xF6CB => 'Dieresis',
1898
+ 0xF6CC => 'DieresisAcute',
1899
+ 0xF6CD => 'DieresisGrave',
1900
+ 0xF7A8 => 'Dieresissmall',
1901
+ 0xF6F7 => 'Dotaccentsmall',
1902
+ 0xF764 => 'Dsmall',
1903
+ 0x0045 => 'E',
1904
+ 0x00C9 => 'Eacute',
1905
+ 0xF7E9 => 'Eacutesmall',
1906
+ 0x0114 => 'Ebreve',
1907
+ 0x011A => 'Ecaron',
1908
+ 0x00CA => 'Ecircumflex',
1909
+ 0xF7EA => 'Ecircumflexsmall',
1910
+ 0x00CB => 'Edieresis',
1911
+ 0xF7EB => 'Edieresissmall',
1912
+ 0x0116 => 'Edotaccent',
1913
+ 0x00C8 => 'Egrave',
1914
+ 0xF7E8 => 'Egravesmall',
1915
+ 0x0112 => 'Emacron',
1916
+ 0x014A => 'Eng',
1917
+ 0x0118 => 'Eogonek',
1918
+ 0x0395 => 'Epsilon',
1919
+ 0x0388 => 'Epsilontonos',
1920
+ 0xF765 => 'Esmall',
1921
+ 0x0397 => 'Eta',
1922
+ 0x0389 => 'Etatonos',
1923
+ 0x00D0 => 'Eth',
1924
+ 0xF7F0 => 'Ethsmall',
1925
+ 0x20AC => 'Euro',
1926
+ 0x0046 => 'F',
1927
+ 0xF766 => 'Fsmall',
1928
+ 0x0047 => 'G',
1929
+ 0x0393 => 'Gamma',
1930
+ 0x011E => 'Gbreve',
1931
+ 0x01E6 => 'Gcaron',
1932
+ 0x011C => 'Gcircumflex',
1933
+ 0x0122 => 'Gcommaaccent',
1934
+ 0x0120 => 'Gdotaccent',
1935
+ 0xF6CE => 'Grave',
1936
+ 0xF760 => 'Gravesmall',
1937
+ 0xF767 => 'Gsmall',
1938
+ 0x0048 => 'H',
1939
+ 0x25CF => 'H18533',
1940
+ 0x25AA => 'H18543',
1941
+ 0x25AB => 'H18551',
1942
+ 0x25A1 => 'H22073',
1943
+ 0x0126 => 'Hbar',
1944
+ 0x0124 => 'Hcircumflex',
1945
+ 0xF768 => 'Hsmall',
1946
+ 0xF6CF => 'Hungarumlaut',
1947
+ 0xF6F8 => 'Hungarumlautsmall',
1948
+ 0x0049 => 'I',
1949
+ 0x0132 => 'IJ',
1950
+ 0x00CD => 'Iacute',
1951
+ 0xF7ED => 'Iacutesmall',
1952
+ 0x012C => 'Ibreve',
1953
+ 0x00CE => 'Icircumflex',
1954
+ 0xF7EE => 'Icircumflexsmall',
1955
+ 0x00CF => 'Idieresis',
1956
+ 0xF7EF => 'Idieresissmall',
1957
+ 0x0130 => 'Idotaccent',
1958
+ 0x2111 => 'Ifraktur',
1959
+ 0x00CC => 'Igrave',
1960
+ 0xF7EC => 'Igravesmall',
1961
+ 0x012A => 'Imacron',
1962
+ 0x012E => 'Iogonek',
1963
+ 0x0399 => 'Iota',
1964
+ 0x03AA => 'Iotadieresis',
1965
+ 0x038A => 'Iotatonos',
1966
+ 0xF769 => 'Ismall',
1967
+ 0x0128 => 'Itilde',
1968
+ 0x004A => 'J',
1969
+ 0x0134 => 'Jcircumflex',
1970
+ 0xF76A => 'Jsmall',
1971
+ 0x004B => 'K',
1972
+ 0x039A => 'Kappa',
1973
+ 0x0136 => 'Kcommaaccent',
1974
+ 0xF76B => 'Ksmall',
1975
+ 0x004C => 'L',
1976
+ 0xF6BF => 'LL',
1977
+ 0x0139 => 'Lacute',
1978
+ 0x039B => 'Lambda',
1979
+ 0x013D => 'Lcaron',
1980
+ 0x013B => 'Lcommaaccent',
1981
+ 0x013F => 'Ldot',
1982
+ 0x0141 => 'Lslash',
1983
+ 0xF6F9 => 'Lslashsmall',
1984
+ 0xF76C => 'Lsmall',
1985
+ 0x004D => 'M',
1986
+ 0xF6D0 => 'Macron',
1987
+ 0xF7AF => 'Macronsmall',
1988
+ 0xF76D => 'Msmall',
1989
+ 0x039C => 'Mu',
1990
+ 0x004E => 'N',
1991
+ 0x0143 => 'Nacute',
1992
+ 0x0147 => 'Ncaron',
1993
+ 0x0145 => 'Ncommaaccent',
1994
+ 0xF76E => 'Nsmall',
1995
+ 0x00D1 => 'Ntilde',
1996
+ 0xF7F1 => 'Ntildesmall',
1997
+ 0x039D => 'Nu',
1998
+ 0x004F => 'O',
1999
+ 0x0152 => 'OE',
2000
+ 0xF6FA => 'OEsmall',
2001
+ 0x00D3 => 'Oacute',
2002
+ 0xF7F3 => 'Oacutesmall',
2003
+ 0x014E => 'Obreve',
2004
+ 0x00D4 => 'Ocircumflex',
2005
+ 0xF7F4 => 'Ocircumflexsmall',
2006
+ 0x00D6 => 'Odieresis',
2007
+ 0xF7F6 => 'Odieresissmall',
2008
+ 0xF6FB => 'Ogoneksmall',
2009
+ 0x00D2 => 'Ograve',
2010
+ 0xF7F2 => 'Ogravesmall',
2011
+ 0x01A0 => 'Ohorn',
2012
+ # 0x0150 => 'Ohungarumlaut',
2013
+ 0x014C => 'Omacron',
2014
+ 0x0150 => 'Otilde',
2015
+ 0x014C => 'Omacron',
2016
+ 0x2126 => 'Omega',
2017
+ 0x03A9 => 'Omega',
2018
+ 0x038F => 'Omegatonos',
2019
+ 0x039F => 'Omicron',
2020
+ 0x038C => 'Omicrontonos',
2021
+ 0x00D8 => 'Oslash',
2022
+ 0x01FE => 'Oslashacute',
2023
+ 0xF7F8 => 'Oslashsmall',
2024
+ 0xF76F => 'Osmall',
2025
+ 0x00D5 => 'Otilde',
2026
+ 0xF7F5 => 'Otildesmall',
2027
+ 0x0050 => 'P',
2028
+ 0x03A6 => 'Phi',
2029
+ 0x03A0 => 'Pi',
2030
+ 0x03A8 => 'Psi',
2031
+ 0xF770 => 'Psmall',
2032
+ 0x0051 => 'Q',
2033
+ 0xF771 => 'Qsmall',
2034
+ 0x0052 => 'R',
2035
+ 0x0154 => 'Racute',
2036
+ 0x0158 => 'Rcaron',
2037
+ 0x0156 => 'Rcommaaccent',
2038
+ 0x211C => 'Rfraktur',
2039
+ 0x03A1 => 'Rho',
2040
+ 0xF6FC => 'Ringsmall',
2041
+ 0xF772 => 'Rsmall',
2042
+ 0x0053 => 'S',
2043
+ 0x250C => 'SF010000',
2044
+ 0x2514 => 'SF020000',
2045
+ 0x2510 => 'SF030000',
2046
+ 0x2518 => 'SF040000',
2047
+ 0x253C => 'SF050000',
2048
+ 0x252C => 'SF060000',
2049
+ 0x2534 => 'SF070000',
2050
+ 0x251C => 'SF080000',
2051
+ 0x2524 => 'SF090000',
2052
+ 0x2500 => 'SF100000',
2053
+ 0x2502 => 'SF110000',
2054
+ 0x2561 => 'SF190000',
2055
+ 0x2562 => 'SF200000',
2056
+ 0x2556 => 'SF210000',
2057
+ 0x2555 => 'SF220000',
2058
+ 0x2563 => 'SF230000',
2059
+ 0x2551 => 'SF240000',
2060
+ 0x2557 => 'SF250000',
2061
+ 0x255D => 'SF260000',
2062
+ 0x255C => 'SF270000',
2063
+ 0x255B => 'SF280000',
2064
+ 0x255E => 'SF360000',
2065
+ 0x255F => 'SF370000',
2066
+ 0x255A => 'SF380000',
2067
+ 0x2554 => 'SF390000',
2068
+ 0x2569 => 'SF400000',
2069
+ 0x2566 => 'SF410000',
2070
+ 0x2560 => 'SF420000',
2071
+ 0x2550 => 'SF430000',
2072
+ 0x256C => 'SF440000',
2073
+ 0x2567 => 'SF450000',
2074
+ 0x2568 => 'SF460000',
2075
+ 0x2564 => 'SF470000',
2076
+ 0x2565 => 'SF480000',
2077
+ 0x2559 => 'SF490000',
2078
+ 0x2558 => 'SF500000',
2079
+ 0x2552 => 'SF510000',
2080
+ 0x2553 => 'SF520000',
2081
+ 0x256B => 'SF530000',
2082
+ 0x256A => 'SF540000',
2083
+ 0x015A => 'Sacute',
2084
+ 0x0160 => 'Scaron',
2085
+ 0xF6FD => 'Scaronsmall',
2086
+ 0x015E => 'Scedilla',
2087
+ 0xF6C1 => 'Scedilla',
2088
+ 0x015C => 'Scircumflex',
2089
+ 0x0218 => 'Scommaaccent',
2090
+ 0x03A3 => 'Sigma',
2091
+ 0xF773 => 'Ssmall',
2092
+ 0x0054 => 'T',
2093
+ 0x03A4 => 'Tau',
2094
+ 0x0166 => 'Tbar',
2095
+ 0x0164 => 'Tcaron',
2096
+ 0x0162 => 'Tcommaaccent',
2097
+ 0x021A => 'Tcommaaccent',
2098
+ 0x0398 => 'Theta',
2099
+ 0x00DE => 'Thorn',
2100
+ 0xF7FE => 'Thornsmall',
2101
+ 0xF6FE => 'Tildesmall',
2102
+ 0xF774 => 'Tsmall',
2103
+ 0x0055 => 'U',
2104
+ 0x00DA => 'Uacute',
2105
+ 0xF7FA => 'Uacutesmall',
2106
+ 0x016C => 'Ubreve',
2107
+ 0x00DB => 'Ucircumflex',
2108
+ 0xF7FB => 'Ucircumflexsmall',
2109
+ 0x00DC => 'Udieresis',
2110
+ 0xF7FC => 'Udieresissmall',
2111
+ 0x00D9 => 'Ugrave',
2112
+ 0xF7F9 => 'Ugravesmall',
2113
+ 0x01AF => 'Uhorn',
2114
+ # 0x0170 => 'Uhungarumlaut',
2115
+ 0x016A => 'Umacron',
2116
+ 0x0170 => 'Ucircumflex',
2117
+ 0x016A => 'Umacron',
2118
+ 0x0172 => 'Uogonek',
2119
+ 0x03A5 => 'Upsilon',
2120
+ 0x03D2 => 'Upsilon1',
2121
+ 0x03AB => 'Upsilondieresis',
2122
+ 0x038E => 'Upsilontonos',
2123
+ 0x016E => 'Uring',
2124
+ 0xF775 => 'Usmall',
2125
+ 0x0168 => 'Utilde',
2126
+ 0x0056 => 'V',
2127
+ 0xF776 => 'Vsmall',
2128
+ 0x0057 => 'W',
2129
+ 0x1E82 => 'Wacute',
2130
+ 0x0174 => 'Wcircumflex',
2131
+ 0x1E84 => 'Wdieresis',
2132
+ 0x1E80 => 'Wgrave',
2133
+ 0xF777 => 'Wsmall',
2134
+ 0x0058 => 'X',
2135
+ 0x039E => 'Xi',
2136
+ 0xF778 => 'Xsmall',
2137
+ 0x0059 => 'Y',
2138
+ 0x00DD => 'Yacute',
2139
+ 0xF7FD => 'Yacutesmall',
2140
+ 0x0176 => 'Ycircumflex',
2141
+ 0x0178 => 'Ydieresis',
2142
+ 0xF7FF => 'Ydieresissmall',
2143
+ 0x1EF2 => 'Ygrave',
2144
+ 0xF779 => 'Ysmall',
2145
+ 0x005A => 'Z',
2146
+ 0x0179 => 'Zacute',
2147
+ 0x017D => 'Zcaron',
2148
+ 0xF6FF => 'Zcaronsmall',
2149
+ 0x017B => 'Zdotaccent',
2150
+ 0x0396 => 'Zeta',
2151
+ 0xF77A => 'Zsmall',
2152
+ 0x0061 => 'a',
2153
+ 0x00E1 => 'aacute',
2154
+ 0x0103 => 'abreve',
2155
+ 0x00E2 => 'acircumflex',
2156
+ 0x00B4 => 'acute',
2157
+ 0x0301 => 'acutecomb',
2158
+ 0x00E4 => 'adieresis',
2159
+ 0x00E6 => 'ae',
2160
+ 0x01FD => 'aeacute',
2161
+ 0x2015 => 'afii00208',
2162
+ 0x0410 => 'afii10017',
2163
+ 0x0411 => 'afii10018',
2164
+ 0x0412 => 'afii10019',
2165
+ 0x0413 => 'afii10020',
2166
+ 0x0414 => 'afii10021',
2167
+ 0x0415 => 'afii10022',
2168
+ 0x0401 => 'afii10023',
2169
+ 0x0416 => 'afii10024',
2170
+ 0x0417 => 'afii10025',
2171
+ 0x0418 => 'afii10026',
2172
+ 0x0419 => 'afii10027',
2173
+ 0x041A => 'afii10028',
2174
+ 0x041B => 'afii10029',
2175
+ 0x041C => 'afii10030',
2176
+ 0x041D => 'afii10031',
2177
+ 0x041E => 'afii10032',
2178
+ 0x041F => 'afii10033',
2179
+ 0x0420 => 'afii10034',
2180
+ 0x0421 => 'afii10035',
2181
+ 0x0422 => 'afii10036',
2182
+ 0x0423 => 'afii10037',
2183
+ 0x0424 => 'afii10038',
2184
+ 0x0425 => 'afii10039',
2185
+ 0x0426 => 'afii10040',
2186
+ 0x0427 => 'afii10041',
2187
+ 0x0428 => 'afii10042',
2188
+ 0x0429 => 'afii10043',
2189
+ 0x042A => 'afii10044',
2190
+ 0x042B => 'afii10045',
2191
+ 0x042C => 'afii10046',
2192
+ 0x042D => 'afii10047',
2193
+ 0x042E => 'afii10048',
2194
+ 0x042F => 'afii10049',
2195
+ 0x0490 => 'afii10050',
2196
+ 0x0402 => 'afii10051',
2197
+ 0x0403 => 'afii10052',
2198
+ 0x0404 => 'afii10053',
2199
+ 0x0405 => 'afii10054',
2200
+ 0x0406 => 'afii10055',
2201
+ 0x0407 => 'afii10056',
2202
+ 0x0408 => 'afii10057',
2203
+ 0x0409 => 'afii10058',
2204
+ 0x040A => 'afii10059',
2205
+ 0x040B => 'afii10060',
2206
+ 0x040C => 'afii10061',
2207
+ 0x040E => 'afii10062',
2208
+ 0xF6C4 => 'afii10063',
2209
+ 0xF6C5 => 'afii10064',
2210
+ 0x0430 => 'afii10065',
2211
+ 0x0431 => 'afii10066',
2212
+ 0x0432 => 'afii10067',
2213
+ 0x0433 => 'afii10068',
2214
+ 0x0434 => 'afii10069',
2215
+ 0x0435 => 'afii10070',
2216
+ 0x0451 => 'afii10071',
2217
+ 0x0436 => 'afii10072',
2218
+ 0x0437 => 'afii10073',
2219
+ 0x0438 => 'afii10074',
2220
+ 0x0439 => 'afii10075',
2221
+ 0x043A => 'afii10076',
2222
+ 0x043B => 'afii10077',
2223
+ 0x043C => 'afii10078',
2224
+ 0x043D => 'afii10079',
2225
+ 0x043E => 'afii10080',
2226
+ 0x043F => 'afii10081',
2227
+ 0x0440 => 'afii10082',
2228
+ 0x0441 => 'afii10083',
2229
+ 0x0442 => 'afii10084',
2230
+ 0x0443 => 'afii10085',
2231
+ 0x0444 => 'afii10086',
2232
+ 0x0445 => 'afii10087',
2233
+ 0x0446 => 'afii10088',
2234
+ 0x0447 => 'afii10089',
2235
+ 0x0448 => 'afii10090',
2236
+ 0x0449 => 'afii10091',
2237
+ 0x044A => 'afii10092',
2238
+ 0x044B => 'afii10093',
2239
+ 0x044C => 'afii10094',
2240
+ 0x044D => 'afii10095',
2241
+ 0x044E => 'afii10096',
2242
+ 0x044F => 'afii10097',
2243
+ 0x0491 => 'afii10098',
2244
+ 0x0452 => 'afii10099',
2245
+ 0x0453 => 'afii10100',
2246
+ 0x0454 => 'afii10101',
2247
+ 0x0455 => 'afii10102',
2248
+ 0x0456 => 'afii10103',
2249
+ 0x0457 => 'afii10104',
2250
+ 0x0458 => 'afii10105',
2251
+ 0x0459 => 'afii10106',
2252
+ 0x045A => 'afii10107',
2253
+ 0x045B => 'afii10108',
2254
+ 0x045C => 'afii10109',
2255
+ 0x045E => 'afii10110',
2256
+ 0x040F => 'afii10145',
2257
+ 0x0462 => 'afii10146',
2258
+ 0x0472 => 'afii10147',
2259
+ 0x0474 => 'afii10148',
2260
+ 0xF6C6 => 'afii10192',
2261
+ 0x045F => 'afii10193',
2262
+ 0x0463 => 'afii10194',
2263
+ 0x0473 => 'afii10195',
2264
+ 0x0475 => 'afii10196',
2265
+ 0xF6C7 => 'afii10831',
2266
+ 0xF6C8 => 'afii10832',
2267
+ 0x04D9 => 'afii10846',
2268
+ 0x200E => 'afii299',
2269
+ 0x200F => 'afii300',
2270
+ 0x200D => 'afii301',
2271
+ 0x066A => 'afii57381',
2272
+ 0x060C => 'afii57388',
2273
+ 0x0660 => 'afii57392',
2274
+ 0x0661 => 'afii57393',
2275
+ 0x0662 => 'afii57394',
2276
+ 0x0663 => 'afii57395',
2277
+ 0x0664 => 'afii57396',
2278
+ 0x0665 => 'afii57397',
2279
+ 0x0666 => 'afii57398',
2280
+ 0x0667 => 'afii57399',
2281
+ 0x0668 => 'afii57400',
2282
+ 0x0669 => 'afii57401',
2283
+ 0x061B => 'afii57403',
2284
+ 0x061F => 'afii57407',
2285
+ 0x0621 => 'afii57409',
2286
+ 0x0622 => 'afii57410',
2287
+ 0x0623 => 'afii57411',
2288
+ 0x0624 => 'afii57412',
2289
+ 0x0625 => 'afii57413',
2290
+ 0x0626 => 'afii57414',
2291
+ 0x0627 => 'afii57415',
2292
+ 0x0628 => 'afii57416',
2293
+ 0x0629 => 'afii57417',
2294
+ 0x062A => 'afii57418',
2295
+ 0x062B => 'afii57419',
2296
+ 0x062C => 'afii57420',
2297
+ 0x062D => 'afii57421',
2298
+ 0x062E => 'afii57422',
2299
+ 0x062F => 'afii57423',
2300
+ 0x0630 => 'afii57424',
2301
+ 0x0631 => 'afii57425',
2302
+ 0x0632 => 'afii57426',
2303
+ 0x0633 => 'afii57427',
2304
+ 0x0634 => 'afii57428',
2305
+ 0x0635 => 'afii57429',
2306
+ 0x0636 => 'afii57430',
2307
+ 0x0637 => 'afii57431',
2308
+ 0x0638 => 'afii57432',
2309
+ 0x0639 => 'afii57433',
2310
+ 0x063A => 'afii57434',
2311
+ 0x0640 => 'afii57440',
2312
+ 0x0641 => 'afii57441',
2313
+ 0x0642 => 'afii57442',
2314
+ 0x0643 => 'afii57443',
2315
+ 0x0644 => 'afii57444',
2316
+ 0x0645 => 'afii57445',
2317
+ 0x0646 => 'afii57446',
2318
+ 0x0648 => 'afii57448',
2319
+ 0x0649 => 'afii57449',
2320
+ 0x064A => 'afii57450',
2321
+ 0x064B => 'afii57451',
2322
+ 0x064C => 'afii57452',
2323
+ 0x064D => 'afii57453',
2324
+ 0x064E => 'afii57454',
2325
+ 0x064F => 'afii57455',
2326
+ 0x0650 => 'afii57456',
2327
+ 0x0651 => 'afii57457',
2328
+ 0x0652 => 'afii57458',
2329
+ 0x0647 => 'afii57470',
2330
+ 0x06A4 => 'afii57505',
2331
+ 0x067E => 'afii57506',
2332
+ 0x0686 => 'afii57507',
2333
+ 0x0698 => 'afii57508',
2334
+ 0x06AF => 'afii57509',
2335
+ 0x0679 => 'afii57511',
2336
+ 0x0688 => 'afii57512',
2337
+ 0x0691 => 'afii57513',
2338
+ 0x06BA => 'afii57514',
2339
+ 0x06D2 => 'afii57519',
2340
+ 0x06D5 => 'afii57534',
2341
+ 0x20AA => 'afii57636',
2342
+ 0x05BE => 'afii57645',
2343
+ 0x05C3 => 'afii57658',
2344
+ 0x05D0 => 'afii57664',
2345
+ 0x05D1 => 'afii57665',
2346
+ 0x05D2 => 'afii57666',
2347
+ 0x05D3 => 'afii57667',
2348
+ 0x05D4 => 'afii57668',
2349
+ 0x05D5 => 'afii57669',
2350
+ 0x05D6 => 'afii57670',
2351
+ 0x05D7 => 'afii57671',
2352
+ 0x05D8 => 'afii57672',
2353
+ 0x05D9 => 'afii57673',
2354
+ 0x05DA => 'afii57674',
2355
+ 0x05DB => 'afii57675',
2356
+ 0x05DC => 'afii57676',
2357
+ 0x05DD => 'afii57677',
2358
+ 0x05DE => 'afii57678',
2359
+ 0x05DF => 'afii57679',
2360
+ 0x05E0 => 'afii57680',
2361
+ 0x05E1 => 'afii57681',
2362
+ 0x05E2 => 'afii57682',
2363
+ 0x05E3 => 'afii57683',
2364
+ 0x05E4 => 'afii57684',
2365
+ 0x05E5 => 'afii57685',
2366
+ 0x05E6 => 'afii57686',
2367
+ 0x05E7 => 'afii57687',
2368
+ 0x05E8 => 'afii57688',
2369
+ 0x05E9 => 'afii57689',
2370
+ 0x05EA => 'afii57690',
2371
+ 0xFB2A => 'afii57694',
2372
+ 0xFB2B => 'afii57695',
2373
+ 0xFB4B => 'afii57700',
2374
+ 0xFB1F => 'afii57705',
2375
+ 0x05F0 => 'afii57716',
2376
+ 0x05F1 => 'afii57717',
2377
+ 0x05F2 => 'afii57718',
2378
+ 0xFB35 => 'afii57723',
2379
+ 0x05B4 => 'afii57793',
2380
+ 0x05B5 => 'afii57794',
2381
+ 0x05B6 => 'afii57795',
2382
+ 0x05BB => 'afii57796',
2383
+ 0x05B8 => 'afii57797',
2384
+ 0x05B7 => 'afii57798',
2385
+ 0x05B0 => 'afii57799',
2386
+ 0x05B2 => 'afii57800',
2387
+ 0x05B1 => 'afii57801',
2388
+ 0x05B3 => 'afii57802',
2389
+ 0x05C2 => 'afii57803',
2390
+ 0x05C1 => 'afii57804',
2391
+ 0x05B9 => 'afii57806',
2392
+ 0x05BC => 'afii57807',
2393
+ 0x05BD => 'afii57839',
2394
+ 0x05BF => 'afii57841',
2395
+ 0x05C0 => 'afii57842',
2396
+ 0x02BC => 'afii57929',
2397
+ 0x2105 => 'afii61248',
2398
+ 0x2113 => 'afii61289',
2399
+ 0x2116 => 'afii61352',
2400
+ 0x202C => 'afii61573',
2401
+ 0x202D => 'afii61574',
2402
+ 0x202E => 'afii61575',
2403
+ 0x200C => 'afii61664',
2404
+ 0x066D => 'afii63167',
2405
+ 0x02BD => 'afii64937',
2406
+ 0x00E0 => 'agrave',
2407
+ 0x2135 => 'aleph',
2408
+ 0x03B1 => 'alpha',
2409
+ 0x03AC => 'alphatonos',
2410
+ 0x0101 => 'amacron',
2411
+ 0x0026 => 'ampersand',
2412
+ 0xF726 => 'ampersandsmall',
2413
+ 0x2220 => 'angle',
2414
+ 0x2329 => 'angleleft',
2415
+ 0x232A => 'angleright',
2416
+ 0x0387 => 'anoteleia',
2417
+ 0x0105 => 'aogonek',
2418
+ 0x2248 => 'approxequal',
2419
+ 0x00E5 => 'aring',
2420
+ 0x01FB => 'aringacute',
2421
+ 0x2194 => 'arrowboth',
2422
+ 0x21D4 => 'arrowdblboth',
2423
+ 0x21D3 => 'arrowdbldown',
2424
+ 0x21D0 => 'arrowdblleft',
2425
+ 0x21D2 => 'arrowdblright',
2426
+ 0x21D1 => 'arrowdblup',
2427
+ 0x2193 => 'arrowdown',
2428
+ 0xF8E7 => 'arrowhorizex',
2429
+ 0x2190 => 'arrowleft',
2430
+ 0x2192 => 'arrowright',
2431
+ 0x2191 => 'arrowup',
2432
+ 0x2195 => 'arrowupdn',
2433
+ 0x21A8 => 'arrowupdnbse',
2434
+ 0xF8E6 => 'arrowvertex',
2435
+ 0x005E => 'asciicircum',
2436
+ 0x007E => 'asciitilde',
2437
+ 0x002A => 'asterisk',
2438
+ 0x2217 => 'asteriskmath',
2439
+ 0xF6E9 => 'asuperior',
2440
+ 0x0040 => 'at',
2441
+ 0x00E3 => 'atilde',
2442
+ 0x0062 => 'b',
2443
+ 0x005C => 'backslash',
2444
+ 0x007C => 'bar',
2445
+ 0x03B2 => 'beta',
2446
+ 0x2588 => 'block',
2447
+ 0xF8F4 => 'braceex',
2448
+ 0x007B => 'braceleft',
2449
+ 0xF8F3 => 'braceleftbt',
2450
+ 0xF8F2 => 'braceleftmid',
2451
+ 0xF8F1 => 'bracelefttp',
2452
+ 0x007D => 'braceright',
2453
+ 0xF8FE => 'bracerightbt',
2454
+ 0xF8FD => 'bracerightmid',
2455
+ 0xF8FC => 'bracerighttp',
2456
+ 0x005B => 'bracketleft',
2457
+ 0xF8F0 => 'bracketleftbt',
2458
+ 0xF8EF => 'bracketleftex',
2459
+ 0xF8EE => 'bracketlefttp',
2460
+ 0x005D => 'bracketright',
2461
+ 0xF8FB => 'bracketrightbt',
2462
+ 0xF8FA => 'bracketrightex',
2463
+ 0xF8F9 => 'bracketrighttp',
2464
+ 0x02D8 => 'breve',
2465
+ 0x00A6 => 'brokenbar',
2466
+ 0xF6EA => 'bsuperior',
2467
+ 0x2022 => 'bullet',
2468
+ 0x0063 => 'c',
2469
+ 0x0107 => 'cacute',
2470
+ 0x02C7 => 'caron',
2471
+ 0x21B5 => 'carriagereturn',
2472
+ 0x010D => 'ccaron',
2473
+ 0x00E7 => 'ccedilla',
2474
+ 0x0109 => 'ccircumflex',
2475
+ 0x010B => 'cdotaccent',
2476
+ 0x00B8 => 'cedilla',
2477
+ 0x00A2 => 'cent',
2478
+ 0xF6DF => 'centinferior',
2479
+ 0xF7A2 => 'centoldstyle',
2480
+ 0xF6E0 => 'centsuperior',
2481
+ 0x03C7 => 'chi',
2482
+ 0x25CB => 'circle',
2483
+ 0x2297 => 'circlemultiply',
2484
+ 0x2295 => 'circleplus',
2485
+ 0x02C6 => 'circumflex',
2486
+ 0x2663 => 'club',
2487
+ 0x003A => 'colon',
2488
+ 0x20A1 => 'colonmonetary',
2489
+ 0x002C => 'comma',
2490
+ 0xF6C3 => 'commaaccent',
2491
+ 0xF6E1 => 'commainferior',
2492
+ 0xF6E2 => 'commasuperior',
2493
+ 0x2245 => 'congruent',
2494
+ 0x00A9 => 'copyright',
2495
+ 0xF8E9 => 'copyrightsans',
2496
+ 0xF6D9 => 'copyrightserif',
2497
+ 0x00A4 => 'currency',
2498
+ 0xF6D1 => 'cyrBreve',
2499
+ 0xF6D2 => 'cyrFlex',
2500
+ 0xF6D4 => 'cyrbreve',
2501
+ 0xF6D5 => 'cyrflex',
2502
+ 0x0064 => 'd',
2503
+ 0x2020 => 'dagger',
2504
+ 0x2021 => 'daggerdbl',
2505
+ 0xF6D3 => 'dblGrave',
2506
+ 0xF6D6 => 'dblgrave',
2507
+ 0x010F => 'dcaron',
2508
+ 0x0111 => 'dcroat',
2509
+ 0x00B0 => 'degree',
2510
+ 0x03B4 => 'delta',
2511
+ 0x2666 => 'diamond',
2512
+ 0x00A8 => 'dieresis',
2513
+ 0xF6D7 => 'dieresisacute',
2514
+ 0xF6D8 => 'dieresisgrave',
2515
+ 0x0385 => 'dieresistonos',
2516
+ 0x00F7 => 'divide',
2517
+ 0x2593 => 'dkshade',
2518
+ 0x2584 => 'dnblock',
2519
+ 0x0024 => 'dollar',
2520
+ 0xF6E3 => 'dollarinferior',
2521
+ 0xF724 => 'dollaroldstyle',
2522
+ 0xF6E4 => 'dollarsuperior',
2523
+ 0x20AB => 'dong',
2524
+ 0x02D9 => 'dotaccent',
2525
+ 0x0323 => 'dotbelowcomb',
2526
+ 0x0131 => 'dotlessi',
2527
+ 0xF6BE => 'dotlessj',
2528
+ 0x22C5 => 'dotmath',
2529
+ 0xF6EB => 'dsuperior',
2530
+ 0x0065 => 'e',
2531
+ 0x00E9 => 'eacute',
2532
+ 0x0115 => 'ebreve',
2533
+ 0x011B => 'ecaron',
2534
+ 0x00EA => 'ecircumflex',
2535
+ 0x00EB => 'edieresis',
2536
+ 0x0117 => 'edotaccent',
2537
+ 0x00E8 => 'egrave',
2538
+ 0x0038 => 'eight',
2539
+ 0x2088 => 'eightinferior',
2540
+ 0xF738 => 'eightoldstyle',
2541
+ 0x2078 => 'eightsuperior',
2542
+ 0x2208 => 'element',
2543
+ 0x2026 => 'ellipsis',
2544
+ 0x0113 => 'emacron',
2545
+ 0x2014 => 'emdash',
2546
+ 0x2205 => 'emptyset',
2547
+ 0x2013 => 'endash',
2548
+ 0x014B => 'eng',
2549
+ 0x0119 => 'eogonek',
2550
+ 0x03B5 => 'epsilon',
2551
+ 0x03AD => 'epsilontonos',
2552
+ 0x003D => 'equal',
2553
+ 0x2261 => 'equivalence',
2554
+ 0x212E => 'estimated',
2555
+ 0xF6EC => 'esuperior',
2556
+ 0x03B7 => 'eta',
2557
+ 0x03AE => 'etatonos',
2558
+ 0x00F0 => 'eth',
2559
+ 0x0021 => 'exclam',
2560
+ 0x203C => 'exclamdbl',
2561
+ 0x00A1 => 'exclamdown',
2562
+ 0xF7A1 => 'exclamdownsmall',
2563
+ 0xF721 => 'exclamsmall',
2564
+ 0x2203 => 'existential',
2565
+ 0x0066 => 'f',
2566
+ 0x2640 => 'female',
2567
+ 0xFB00 => 'ff',
2568
+ 0xFB03 => 'ffi',
2569
+ 0xFB04 => 'ffl',
2570
+ 0xFB01 => 'fi',
2571
+ 0x2012 => 'figuredash',
2572
+ 0x25A0 => 'filledbox',
2573
+ 0x25AC => 'filledrect',
2574
+ 0x0035 => 'five',
2575
+ 0x215D => 'fiveeighths',
2576
+ 0x2085 => 'fiveinferior',
2577
+ 0xF735 => 'fiveoldstyle',
2578
+ 0x2075 => 'fivesuperior',
2579
+ 0xFB02 => 'fl',
2580
+ 0x0192 => 'florin',
2581
+ 0x0034 => 'four',
2582
+ 0x2084 => 'fourinferior',
2583
+ 0xF734 => 'fouroldstyle',
2584
+ 0x2074 => 'foursuperior',
2585
+ 0x2044 => 'fraction',
2586
+ 0x2215 => 'fraction',
2587
+ 0x20A3 => 'franc',
2588
+ 0x0067 => 'g',
2589
+ 0x03B3 => 'gamma',
2590
+ 0x011F => 'gbreve',
2591
+ 0x01E7 => 'gcaron',
2592
+ 0x011D => 'gcircumflex',
2593
+ 0x0123 => 'gcommaaccent',
2594
+ 0x0121 => 'gdotaccent',
2595
+ 0x00DF => 'germandbls',
2596
+ 0x2207 => 'gradient',
2597
+ 0x0060 => 'grave',
2598
+ 0x0300 => 'gravecomb',
2599
+ 0x003E => 'greater',
2600
+ 0x2265 => 'greaterequal',
2601
+ 0x00AB => 'guillemotleft',
2602
+ 0x00BB => 'guillemotright',
2603
+ 0x2039 => 'guilsinglleft',
2604
+ 0x203A => 'guilsinglright',
2605
+ 0x0068 => 'h',
2606
+ 0x0127 => 'hbar',
2607
+ 0x0125 => 'hcircumflex',
2608
+ 0x2665 => 'heart',
2609
+ 0x0309 => 'hookabovecomb',
2610
+ 0x2302 => 'house',
2611
+ 0x02DD => 'hungarumlaut',
2612
+ 0x002D => 'hyphen',
2613
+ 0x00AD => 'hyphen',
2614
+ 0xF6E5 => 'hypheninferior',
2615
+ 0xF6E6 => 'hyphensuperior',
2616
+ 0x0069 => 'i',
2617
+ 0x00ED => 'iacute',
2618
+ 0x012D => 'ibreve',
2619
+ 0x00EE => 'icircumflex',
2620
+ 0x00EF => 'idieresis',
2621
+ 0x00EC => 'igrave',
2622
+ 0x0133 => 'ij',
2623
+ 0x012B => 'imacron',
2624
+ 0x221E => 'infinity',
2625
+ 0x222B => 'integral',
2626
+ 0x2321 => 'integralbt',
2627
+ 0xF8F5 => 'integralex',
2628
+ 0x2320 => 'integraltp',
2629
+ 0x2229 => 'intersection',
2630
+ 0x25D8 => 'invbullet',
2631
+ 0x25D9 => 'invcircle',
2632
+ 0x263B => 'invsmileface',
2633
+ 0x012F => 'iogonek',
2634
+ 0x03B9 => 'iota',
2635
+ 0x03CA => 'iotadieresis',
2636
+ 0x0390 => 'iotadieresistonos',
2637
+ 0x03AF => 'iotatonos',
2638
+ 0xF6ED => 'isuperior',
2639
+ 0x0129 => 'itilde',
2640
+ 0x006A => 'j',
2641
+ 0x0135 => 'jcircumflex',
2642
+ 0x006B => 'k',
2643
+ 0x03BA => 'kappa',
2644
+ 0x0137 => 'kcommaaccent',
2645
+ 0x0138 => 'kgreenlandic',
2646
+ 0x006C => 'l',
2647
+ 0x013A => 'lacute',
2648
+ 0x03BB => 'lambda',
2649
+ 0x013E => 'lcaron',
2650
+ 0x013C => 'lcommaaccent',
2651
+ 0x0140 => 'ldot',
2652
+ 0x003C => 'less',
2653
+ 0x2264 => 'lessequal',
2654
+ 0x258C => 'lfblock',
2655
+ 0x20A4 => 'lira',
2656
+ 0xF6C0 => 'll',
2657
+ 0x2227 => 'logicaland',
2658
+ 0x00AC => 'logicalnot',
2659
+ 0x2228 => 'logicalor',
2660
+ 0x017F => 'longs',
2661
+ 0x25CA => 'lozenge',
2662
+ 0x0142 => 'lslash',
2663
+ 0xF6EE => 'lsuperior',
2664
+ 0x2591 => 'ltshade',
2665
+ 0x006D => 'm',
2666
+ 0x00AF => 'macron',
2667
+ 0x02C9 => 'macron',
2668
+ 0x2642 => 'male',
2669
+ 0x2212 => 'minus',
2670
+ 0x2032 => 'minute',
2671
+ 0xF6EF => 'msuperior',
2672
+ 0x00B5 => 'mu',
2673
+ 0x03BC => 'mu',
2674
+ 0x00D7 => 'multiply',
2675
+ 0x266A => 'musicalnote',
2676
+ 0x266B => 'musicalnotedbl',
2677
+ 0x006E => 'n',
2678
+ 0x0144 => 'nacute',
2679
+ 0x0149 => 'napostrophe',
2680
+ 0x0148 => 'ncaron',
2681
+ 0x0146 => 'ncommaaccent',
2682
+ 0x0039 => 'nine',
2683
+ 0x2089 => 'nineinferior',
2684
+ 0xF739 => 'nineoldstyle',
2685
+ 0x2079 => 'ninesuperior',
2686
+ 0x2209 => 'notelement',
2687
+ 0x2260 => 'notequal',
2688
+ 0x2284 => 'notsubset',
2689
+ 0x207F => 'nsuperior',
2690
+ 0x00F1 => 'ntilde',
2691
+ 0x03BD => 'nu',
2692
+ 0x0023 => 'numbersign',
2693
+ 0x006F => 'o',
2694
+ 0x00F3 => 'oacute',
2695
+ 0x014F => 'obreve',
2696
+ 0x00F4 => 'ocircumflex',
2697
+ 0x00F6 => 'odieresis',
2698
+ 0x0153 => 'oe',
2699
+ 0x02DB => 'ogonek',
2700
+ 0x00F2 => 'ograve',
2701
+ 0x01A1 => 'ohorn',
2702
+ # 0x0151 => 'ohungarumlaut',
2703
+ 0x014D => 'omacron',
2704
+ 0x0151 => 'otilde',
2705
+ 0x014D => 'omacron',
2706
+ 0x03C9 => 'omega',
2707
+ 0x03D6 => 'omega1',
2708
+ 0x03CE => 'omegatonos',
2709
+ 0x03BF => 'omicron',
2710
+ 0x03CC => 'omicrontonos',
2711
+ 0x0031 => 'one',
2712
+ 0x2024 => 'onedotenleader',
2713
+ 0x215B => 'oneeighth',
2714
+ 0xF6DC => 'onefitted',
2715
+ 0x00BD => 'onehalf',
2716
+ 0x2081 => 'oneinferior',
2717
+ 0xF731 => 'oneoldstyle',
2718
+ 0x00BC => 'onequarter',
2719
+ 0x00B9 => 'onesuperior',
2720
+ 0x2153 => 'onethird',
2721
+ 0x25E6 => 'openbullet',
2722
+ 0x00AA => 'ordfeminine',
2723
+ 0x00BA => 'ordmasculine',
2724
+ 0x221F => 'orthogonal',
2725
+ 0x00F8 => 'oslash',
2726
+ 0x01FF => 'oslashacute',
2727
+ 0xF6F0 => 'osuperior',
2728
+ 0x00F5 => 'otilde',
2729
+ 0x0070 => 'p',
2730
+ 0x00B6 => 'paragraph',
2731
+ 0x0028 => 'parenleft',
2732
+ 0xF8ED => 'parenleftbt',
2733
+ 0xF8EC => 'parenleftex',
2734
+ 0x208D => 'parenleftinferior',
2735
+ 0x207D => 'parenleftsuperior',
2736
+ 0xF8EB => 'parenlefttp',
2737
+ 0x0029 => 'parenright',
2738
+ 0xF8F8 => 'parenrightbt',
2739
+ 0xF8F7 => 'parenrightex',
2740
+ 0x208E => 'parenrightinferior',
2741
+ 0x207E => 'parenrightsuperior',
2742
+ 0xF8F6 => 'parenrighttp',
2743
+ 0x2202 => 'partialdiff',
2744
+ 0x0025 => 'percent',
2745
+ 0x002E => 'period',
2746
+ 0x00B7 => 'periodcentered',
2747
+ 0x2219 => 'periodcentered',
2748
+ 0xF6E7 => 'periodinferior',
2749
+ 0xF6E8 => 'periodsuperior',
2750
+ 0x22A5 => 'perpendicular',
2751
+ 0x2030 => 'perthousand',
2752
+ 0x20A7 => 'peseta',
2753
+ 0x03C6 => 'phi',
2754
+ 0x03D5 => 'phi1',
2755
+ 0x03C0 => 'pi',
2756
+ 0x002B => 'plus',
2757
+ 0x00B1 => 'plusminus',
2758
+ 0x211E => 'prescription',
2759
+ 0x220F => 'product',
2760
+ 0x2282 => 'propersubset',
2761
+ 0x2283 => 'propersuperset',
2762
+ 0x221D => 'proportional',
2763
+ 0x03C8 => 'psi',
2764
+ 0x0071 => 'q',
2765
+ 0x003F => 'question',
2766
+ 0x00BF => 'questiondown',
2767
+ 0xF7BF => 'questiondownsmall',
2768
+ 0xF73F => 'questionsmall',
2769
+ 0x0022 => 'quotedbl',
2770
+ 0x201E => 'quotedblbase',
2771
+ 0x201C => 'quotedblleft',
2772
+ 0x201D => 'quotedblright',
2773
+ 0x2018 => 'quoteleft',
2774
+ 0x201B => 'quotereversed',
2775
+ 0x2019 => 'quoteright',
2776
+ 0x201A => 'quotesinglbase',
2777
+ 0x0027 => 'quotesingle',
2778
+ 0x0072 => 'r',
2779
+ 0x0155 => 'racute',
2780
+ 0x221A => 'radical',
2781
+ 0xF8E5 => 'radicalex',
2782
+ 0x0159 => 'rcaron',
2783
+ 0x0157 => 'rcommaaccent',
2784
+ 0x2286 => 'reflexsubset',
2785
+ 0x2287 => 'reflexsuperset',
2786
+ 0x00AE => 'registered',
2787
+ 0xF8E8 => 'registersans',
2788
+ 0xF6DA => 'registerserif',
2789
+ 0x2310 => 'revlogicalnot',
2790
+ 0x03C1 => 'rho',
2791
+ 0x02DA => 'ring',
2792
+ 0xF6F1 => 'rsuperior',
2793
+ 0x2590 => 'rtblock',
2794
+ 0xF6DD => 'rupiah',
2795
+ 0x0073 => 's',
2796
+ 0x015B => 'sacute',
2797
+ 0x0161 => 'scaron',
2798
+ 0x015F => 'scedilla',
2799
+ 0xF6C2 => 'scedilla',
2800
+ 0x015D => 'scircumflex',
2801
+ 0x0219 => 'scommaaccent',
2802
+ 0x2033 => 'second',
2803
+ 0x00A7 => 'section',
2804
+ 0x003B => 'semicolon',
2805
+ 0x0037 => 'seven',
2806
+ 0x215E => 'seveneighths',
2807
+ 0x2087 => 'seveninferior',
2808
+ 0xF737 => 'sevenoldstyle',
2809
+ 0x2077 => 'sevensuperior',
2810
+ 0x2592 => 'shade',
2811
+ 0x03C3 => 'sigma',
2812
+ 0x03C2 => 'sigma1',
2813
+ 0x223C => 'similar',
2814
+ 0x0036 => 'six',
2815
+ 0x2086 => 'sixinferior',
2816
+ 0xF736 => 'sixoldstyle',
2817
+ 0x2076 => 'sixsuperior',
2818
+ 0x002F => 'slash',
2819
+ 0x263A => 'smileface',
2820
+ 0x0020 => 'space',
2821
+ 0x00A0 => 'space',
2822
+ 0x2660 => 'spade',
2823
+ 0xF6F2 => 'ssuperior',
2824
+ 0x00A3 => 'sterling',
2825
+ 0x220B => 'suchthat',
2826
+ 0x2211 => 'summation',
2827
+ 0x263C => 'sun',
2828
+ 0x0074 => 't',
2829
+ 0x03C4 => 'tau',
2830
+ 0x0167 => 'tbar',
2831
+ 0x0165 => 'tcaron',
2832
+ 0x0163 => 'tcommaaccent',
2833
+ 0x021B => 'tcommaaccent',
2834
+ 0x2234 => 'therefore',
2835
+ 0x03B8 => 'theta',
2836
+ 0x03D1 => 'theta1',
2837
+ 0x00FE => 'thorn',
2838
+ 0x0033 => 'three',
2839
+ 0x215C => 'threeeighths',
2840
+ 0x2083 => 'threeinferior',
2841
+ 0xF733 => 'threeoldstyle',
2842
+ 0x00BE => 'threequarters',
2843
+ 0xF6DE => 'threequartersemdash',
2844
+ 0x00B3 => 'threesuperior',
2845
+ 0x02DC => 'tilde',
2846
+ 0x0303 => 'tildecomb',
2847
+ 0x0384 => 'tonos',
2848
+ 0x2122 => 'trademark',
2849
+ 0xF8EA => 'trademarksans',
2850
+ 0xF6DB => 'trademarkserif',
2851
+ 0x25BC => 'triagdn',
2852
+ 0x25C4 => 'triaglf',
2853
+ 0x25BA => 'triagrt',
2854
+ 0x25B2 => 'triagup',
2855
+ 0xF6F3 => 'tsuperior',
2856
+ 0x0032 => 'two',
2857
+ 0x2025 => 'twodotenleader',
2858
+ 0x2082 => 'twoinferior',
2859
+ 0xF732 => 'twooldstyle',
2860
+ 0x00B2 => 'twosuperior',
2861
+ 0x2154 => 'twothirds',
2862
+ 0x0075 => 'u',
2863
+ 0x00FA => 'uacute',
2864
+ 0x016D => 'ubreve',
2865
+ 0x00FB => 'ucircumflex',
2866
+ 0x00FC => 'udieresis',
2867
+ 0x00F9 => 'ugrave',
2868
+ 0x0171 => 'uhungarumlaut',
2869
+ 0x01B0 => 'uhorn',
2870
+ 0x0171 => 'ucircumflex',
2871
+ 0x016B => 'umacron',
2872
+ 0x005F => 'underscore',
2873
+ 0x2017 => 'underscoredbl',
2874
+ 0x222A => 'union',
2875
+ 0x2200 => 'universal',
2876
+ 0x0173 => 'uogonek',
2877
+ 0x2580 => 'upblock',
2878
+ 0x03C5 => 'upsilon',
2879
+ 0x03CB => 'upsilondieresis',
2880
+ 0x03B0 => 'upsilondieresistonos',
2881
+ 0x03CD => 'upsilontonos',
2882
+ 0x016F => 'uring',
2883
+ 0x0169 => 'utilde',
2884
+ 0x0076 => 'v',
2885
+ 0x0077 => 'w',
2886
+ 0x1E83 => 'wacute',
2887
+ 0x0175 => 'wcircumflex',
2888
+ 0x1E85 => 'wdieresis',
2889
+ 0x2118 => 'weierstrass',
2890
+ 0x1E81 => 'wgrave',
2891
+ 0x0078 => 'x',
2892
+ 0x03BE => 'xi',
2893
+ 0x0079 => 'y',
2894
+ 0x00FD => 'yacute',
2895
+ 0x0177 => 'ycircumflex',
2896
+ 0x00FF => 'ydieresis',
2897
+ 0x00A5 => 'yen',
2898
+ 0x1EF3 => 'ygrave',
2899
+ 0x007A => 'z',
2900
+ 0x017A => 'zacute',
2901
+ 0x017E => 'zcaron',
2902
+ 0x017C => 'zdotaccent',
2903
+ 0x0030 => 'zero',
2904
+ 0x2080 => 'zeroinferior',
2905
+ 0xF730 => 'zerooldstyle',
2906
+ 0x2070 => 'zerosuperior',
2907
+ 0x03B6 => 'zeta'
2908
+ }
2909
+
2910
+ CODEPOINTS = GLYPHS.invert
2911
+
2912
+ FONT_NAMES = [
2913
+ 'Helvetica',
2914
+ 'Helvetica-Bold',
2915
+ 'Helvetica-Oblique',
2916
+ 'Helvetica-BoldOblique',
2917
+ 'Times-Roman',
2918
+ 'Times-Bold',
2919
+ 'Times-Italic',
2920
+ 'Times-BoldItalic',
2921
+ 'Courier',
2922
+ 'Courier-Bold',
2923
+ 'Courier-Oblique',
2924
+ 'Courier-BoldOblique',
2925
+ 'Symbol',
2926
+ 'ZapfDingbats',
2927
+ 'AvantGarde-Book',
2928
+ 'AvantGarde-BookOblique',
2929
+ 'AvantGarde-Demi',
2930
+ 'AvantGarde-DemiOblique',
2931
+ 'Bookman-Demi',
2932
+ 'Bookman-DemiItalic',
2933
+ 'Bookman-Light',
2934
+ 'Bookman-LightItalic',
2935
+ 'Helvetica-Narrow',
2936
+ 'Helvetica-Narrow-Oblique',
2937
+ 'Helvetica-Narrow-Bold',
2938
+ 'Helvetica-Narrow-BoldOblique',
2939
+ 'NewCenturySchlbk-Roman',
2940
+ 'NewCenturySchlbk-Italic',
2941
+ 'NewCenturySchlbk-Bold',
2942
+ 'NewCenturySchlbk-BoldItalic',
2943
+ 'Palatino-Roman',
2944
+ 'Palatino-Italic',
2945
+ 'Palatino-Bold',
2946
+ 'Palatino-BoldItalic',
2947
+ 'ZapfChancery-MediumItalic',
2948
+ 'Helvetica-Condensed',
2949
+ 'Helvetica-Condensed-Bold',
2950
+ 'Helvetica-Condensed-Oblique',
2951
+ 'Helvetica-Condensed-BoldObl'
2952
+ ]
2953
+
2954
+ NAMED_COLORS = {
2955
+ 'AliceBlue' => 0xF0F8FF,
2956
+ 'AntiqueWhite' => 0xFAEBD7,
2957
+ 'Aqua' => 0x00FFFF,
2958
+ 'Aquamarine' => 0x7FFFD4,
2959
+ 'Azure' => 0xF0FFFF,
2960
+ 'Beige' => 0xF5F5DC,
2961
+ 'Bisque' => 0xFFE4C4,
2962
+ 'Black' => 0x000000,
2963
+ 'BlanchedAlmond' => 0xFFEBCD,
2964
+ 'Blue' => 0x0000FF,
2965
+ 'BlueViolet' => 0x8A2BE2,
2966
+ 'Brown' => 0xA52A2A,
2967
+ 'BurlyWood' => 0xDEB887,
2968
+ 'CadetBlue' => 0x5F9EA0,
2969
+ 'Chartreuse' => 0x7FFF00,
2970
+ 'Chocolate' => 0xD2691E,
2971
+ 'Coral' => 0xFF7F50,
2972
+ 'CornflowerBlue' => 0x6495ED,
2973
+ 'Cornsilk' => 0xFFF8DC,
2974
+ 'Crimson' => 0xDC143C,
2975
+ 'Cyan' => 0x00FFFF,
2976
+ 'DarkBlue' => 0x00008B,
2977
+ 'DarkCyan' => 0x008B8B,
2978
+ 'DarkGoldenRod' => 0xB8860B,
2979
+ 'DarkGray' => 0xA9A9A9,
2980
+ 'DarkGrey' => 0xA9A9A9,
2981
+ 'DarkGreen' => 0x006400,
2982
+ 'DarkKhaki' => 0xBDB76B,
2983
+ 'DarkMagenta' => 0x8B008B,
2984
+ 'DarkOliveGreen' => 0x556B2F,
2985
+ 'DarkOrange' => 0xFF8C00,
2986
+ 'DarkOrchid' => 0x9932CC,
2987
+ 'DarkRed' => 0x8B0000,
2988
+ 'DarkSalmon' => 0xE9967A,
2989
+ 'DarkSeaGreen' => 0x8FBC8F,
2990
+ 'DarkSlateBlue' => 0x483D8B,
2991
+ 'DarkSlateGray' => 0x2F4F4F,
2992
+ 'DarkSlateGrey' => 0x2F4F4F,
2993
+ 'DarkTurquoise' => 0x00CED1,
2994
+ 'DarkViolet' => 0x9400D3,
2995
+ 'DeepPink' => 0xFF1493,
2996
+ 'DeepSkyBlue' => 0x00BFFF,
2997
+ 'DimGray' => 0x696969,
2998
+ 'DimGrey' => 0x696969,
2999
+ 'DodgerBlue' => 0x1E90FF,
3000
+ 'FireBrick' => 0xB22222,
3001
+ 'FloralWhite' => 0xFFFAF0,
3002
+ 'ForestGreen' => 0x228B22,
3003
+ 'Fuchsia' => 0xFF00FF,
3004
+ 'Gainsboro' => 0xDCDCDC,
3005
+ 'GhostWhite' => 0xF8F8FF,
3006
+ 'Gold' => 0xFFD700,
3007
+ 'GoldenRod' => 0xDAA520,
3008
+ 'Gray' => 0x808080,
3009
+ 'Grey' => 0x808080,
3010
+ 'Green' => 0x008000,
3011
+ 'GreenYellow' => 0xADFF2F,
3012
+ 'HoneyDew' => 0xF0FFF0,
3013
+ 'HotPink' => 0xFF69B4,
3014
+ 'IndianRed' => 0xCD5C5C,
3015
+ 'Indigo' => 0x4B0082,
3016
+ 'Ivory' => 0xFFFFF0,
3017
+ 'Khaki' => 0xF0E68C,
3018
+ 'Lavender' => 0xE6E6FA,
3019
+ 'LavenderBlush' => 0xFFF0F5,
3020
+ 'LawnGreen' => 0x7CFC00,
3021
+ 'LemonChiffon' => 0xFFFACD,
3022
+ 'LightBlue' => 0xADD8E6,
3023
+ 'LightCoral' => 0xF08080,
3024
+ 'LightCyan' => 0xE0FFFF,
3025
+ 'LightGoldenRodYellow' => 0xFAFAD2,
3026
+ 'LightGray' => 0xD3D3D3,
3027
+ 'LightGrey' => 0xD3D3D3,
3028
+ 'LightGreen' => 0x90EE90,
3029
+ 'LightPink' => 0xFFB6C1,
3030
+ 'LightSalmon' => 0xFFA07A,
3031
+ 'LightSeaGreen' => 0x20B2AA,
3032
+ 'LightSkyBlue' => 0x87CEFA,
3033
+ 'LightSlateGray' => 0x778899,
3034
+ 'LightSlateGrey' => 0x778899,
3035
+ 'LightSteelBlue' => 0xB0C4DE,
3036
+ 'LightYellow' => 0xFFFFE0,
3037
+ 'Lime' => 0x00FF00,
3038
+ 'LimeGreen' => 0x32CD32,
3039
+ 'Linen' => 0xFAF0E6,
3040
+ 'Magenta' => 0xFF00FF,
3041
+ 'Maroon' => 0x800000,
3042
+ 'MediumAquaMarine' => 0x66CDAA,
3043
+ 'MediumBlue' => 0x0000CD,
3044
+ 'MediumOrchid' => 0xBA55D3,
3045
+ 'MediumPurple' => 0x9370D8,
3046
+ 'MediumSeaGreen' => 0x3CB371,
3047
+ 'MediumSlateBlue' => 0x7B68EE,
3048
+ 'MediumSpringGreen' => 0x00FA9A,
3049
+ 'MediumTurquoise' => 0x48D1CC,
3050
+ 'MediumVioletRed' => 0xC71585,
3051
+ 'MidnightBlue' => 0x191970,
3052
+ 'MintCream' => 0xF5FFFA,
3053
+ 'MistyRose' => 0xFFE4E1,
3054
+ 'Moccasin' => 0xFFE4B5,
3055
+ 'NavajoWhite' => 0xFFDEAD,
3056
+ 'Navy' => 0x000080,
3057
+ 'OldLace' => 0xFDF5E6,
3058
+ 'Olive' => 0x808000,
3059
+ 'OliveDrab' => 0x6B8E23,
3060
+ 'Orange' => 0xFFA500,
3061
+ 'OrangeRed' => 0xFF4500,
3062
+ 'Orchid' => 0xDA70D6,
3063
+ 'PaleGoldenRod' => 0xEEE8AA,
3064
+ 'PaleGreen' => 0x98FB98,
3065
+ 'PaleTurquoise' => 0xAFEEEE,
3066
+ 'PaleVioletRed' => 0xD87093,
3067
+ 'PapayaWhip' => 0xFFEFD5,
3068
+ 'PeachPuff' => 0xFFDAB9,
3069
+ 'Peru' => 0xCD853F,
3070
+ 'Pink' => 0xFFC0CB,
3071
+ 'Plum' => 0xDDA0DD,
3072
+ 'PowderBlue' => 0xB0E0E6,
3073
+ 'Purple' => 0x800080,
3074
+ 'Red' => 0xFF0000,
3075
+ 'RosyBrown' => 0xBC8F8F,
3076
+ 'RoyalBlue' => 0x4169E1,
3077
+ 'SaddleBrown' => 0x8B4513,
3078
+ 'Salmon' => 0xFA8072,
3079
+ 'SandyBrown' => 0xF4A460,
3080
+ 'SeaGreen' => 0x2E8B57,
3081
+ 'SeaShell' => 0xFFF5EE,
3082
+ 'Sienna' => 0xA0522D,
3083
+ 'Silver' => 0xC0C0C0,
3084
+ 'SkyBlue' => 0x87CEEB,
3085
+ 'SlateBlue' => 0x6A5ACD,
3086
+ 'SlateGray' => 0x708090,
3087
+ 'SlateGrey' => 0x708090,
3088
+ 'Snow' => 0xFFFAFA,
3089
+ 'SpringGreen' => 0x00FF7F,
3090
+ 'SteelBlue' => 0x4682B4,
3091
+ 'Tan' => 0xD2B48C,
3092
+ 'Teal' => 0x008080,
3093
+ 'Thistle' => 0xD8BFD8,
3094
+ 'Tomato' => 0xFF6347,
3095
+ 'Turquoise' => 0x40E0D0,
3096
+ 'Violet' => 0xEE82EE,
3097
+ 'Wheat' => 0xF5DEB3,
3098
+ 'White' => 0xFFFFFF,
3099
+ 'WhiteSmoke' => 0xF5F5F5,
3100
+ 'Yellow' => 0xFFFF00,
3101
+ 'YellowGreen' => 0x9ACD32
3102
+ }
3103
+
3104
+ STANDARD_ENCODINGS = ['WinAnsiEncoding','StandardEncoding','MacRomanEncoding','MacExpertEncoding']
3105
+
3106
+ # GlyphList = File.join(File.dirname(__FILE__), 'glyphlist.txt')
3107
+ # if File.exist?(GlyphList)
3108
+ # GLYPHS.clear
3109
+ # File.foreach(GlyphList) do |line|
3110
+ # if line =~ /^(\w+);(\w{4})$/
3111
+ # codepoint = $2.to_i(16)
3112
+ # GLYPHS[codepoint] = $1 unless GLYPHS[codepoint]
3113
+ # end
3114
+ # end
3115
+ # end
3116
+
3117
+ FontMetrics = Struct.new(:needs_descriptor, :widths, :ascent, :descent, :flags, :b_box, :missing_width,
3118
+ :stem_v, :stem_h, :italic_angle, :cap_height, :x_height, :leading, :max_width, :avg_width,
3119
+ :underline_position, :underline_thickness, :differences)
3120
+
3121
+ def font_index(font_name)
3122
+ FONT_NAMES.index(font_name)
3123
+ end
3124
+
3125
+ def font_metrics(font_name)
3126
+ index = font_index(font_name)
3127
+ raise Exception.new("Unknown font #{font_name}.") unless index
3128
+ needs_descriptor = index >= 14
3129
+ FontMetrics.new(needs_descriptor, FONT_WIDTHS[index], FONT_ASCENDERS[index], FONT_DESCENDERS[index], FONT_FLAGS[index], FONT_BBOXES[index],
3130
+ FONT_MISSING_WIDTHS[index], FONT_STEM_VS[index], FONT_STEM_HS[index], FONT_ITALIC_ANGLES[index],
3131
+ FONT_CAP_HEIGHTS[index], FONT_X_HEIGHTS[index], FONT_LEADINGS[index], FONT_MAX_WIDTHS[index], FONT_AVG_WIDTHS[index],
3132
+ UNDERLINE_POSITION, UNDERLINE_THICKNESS)
3133
+ end
3134
+
3135
+ def glyph_name(codepoint)
3136
+ return nil if codepoint.nil? or codepoint < 0x20
3137
+ GLYPHS[codepoint] || 'question'
3138
+ end
3139
+
3140
+ module_function :font_index, :font_metrics, :glyph_name
3141
+ end
3142
+ end