pdf-writer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. data/ChangeLog +44 -0
  2. data/LICENCE +118 -0
  3. data/README +32 -0
  4. data/bin/loader +54 -0
  5. data/bin/manual +22 -0
  6. data/bin/manual.bat +2 -0
  7. data/demo/chunkybacon.rb +28 -0
  8. data/demo/code.rb +63 -0
  9. data/demo/colornames.rb +843 -0
  10. data/demo/demo.rb +65 -0
  11. data/demo/gettysburg.rb +58 -0
  12. data/demo/hello.rb +18 -0
  13. data/demo/individual-i.rb +81 -0
  14. data/demo/pac.rb +62 -0
  15. data/demo/pagenumber.rb +67 -0
  16. data/demo/qr-language.rb +573 -0
  17. data/demo/qr-library.rb +371 -0
  18. data/images/chunkybacon.jpg +0 -0
  19. data/images/chunkybacon.png +0 -0
  20. data/images/pdfwriter-icon.jpg +0 -0
  21. data/images/pdfwriter-small.jpg +0 -0
  22. data/lib/pdf/charts.rb +13 -0
  23. data/lib/pdf/charts/stddev.rb +431 -0
  24. data/lib/pdf/grid.rb +135 -0
  25. data/lib/pdf/math.rb +108 -0
  26. data/lib/pdf/quickref.rb +330 -0
  27. data/lib/pdf/simpletable.rb +946 -0
  28. data/lib/pdf/techbook.rb +890 -0
  29. data/lib/pdf/writer.rb +2661 -0
  30. data/lib/pdf/writer/arc4.rb +63 -0
  31. data/lib/pdf/writer/fontmetrics.rb +201 -0
  32. data/lib/pdf/writer/fonts/Courier-Bold.afm +342 -0
  33. data/lib/pdf/writer/fonts/Courier-BoldOblique.afm +342 -0
  34. data/lib/pdf/writer/fonts/Courier-Oblique.afm +342 -0
  35. data/lib/pdf/writer/fonts/Courier.afm +342 -0
  36. data/lib/pdf/writer/fonts/Helvetica-Bold.afm +2827 -0
  37. data/lib/pdf/writer/fonts/Helvetica-BoldOblique.afm +2827 -0
  38. data/lib/pdf/writer/fonts/Helvetica-Oblique.afm +3051 -0
  39. data/lib/pdf/writer/fonts/Helvetica.afm +3051 -0
  40. data/lib/pdf/writer/fonts/MustRead.html +1 -0
  41. data/lib/pdf/writer/fonts/Symbol.afm +213 -0
  42. data/lib/pdf/writer/fonts/Times-Bold.afm +2588 -0
  43. data/lib/pdf/writer/fonts/Times-BoldItalic.afm +2384 -0
  44. data/lib/pdf/writer/fonts/Times-Italic.afm +2667 -0
  45. data/lib/pdf/writer/fonts/Times-Roman.afm +2419 -0
  46. data/lib/pdf/writer/fonts/ZapfDingbats.afm +225 -0
  47. data/lib/pdf/writer/graphics.rb +727 -0
  48. data/lib/pdf/writer/graphics/imageinfo.rb +365 -0
  49. data/lib/pdf/writer/lang.rb +43 -0
  50. data/lib/pdf/writer/lang/en.rb +77 -0
  51. data/lib/pdf/writer/object.rb +23 -0
  52. data/lib/pdf/writer/object/action.rb +40 -0
  53. data/lib/pdf/writer/object/annotation.rb +42 -0
  54. data/lib/pdf/writer/object/catalog.rb +39 -0
  55. data/lib/pdf/writer/object/contents.rb +68 -0
  56. data/lib/pdf/writer/object/destination.rb +40 -0
  57. data/lib/pdf/writer/object/encryption.rb +53 -0
  58. data/lib/pdf/writer/object/font.rb +76 -0
  59. data/lib/pdf/writer/object/fontdescriptor.rb +34 -0
  60. data/lib/pdf/writer/object/fontencoding.rb +39 -0
  61. data/lib/pdf/writer/object/image.rb +168 -0
  62. data/lib/pdf/writer/object/info.rb +55 -0
  63. data/lib/pdf/writer/object/outline.rb +30 -0
  64. data/lib/pdf/writer/object/outlines.rb +30 -0
  65. data/lib/pdf/writer/object/page.rb +195 -0
  66. data/lib/pdf/writer/object/pages.rb +115 -0
  67. data/lib/pdf/writer/object/procset.rb +46 -0
  68. data/lib/pdf/writer/object/viewerpreferences.rb +74 -0
  69. data/lib/pdf/writer/ohash.rb +58 -0
  70. data/lib/pdf/writer/oreader.rb +25 -0
  71. data/lib/pdf/writer/state.rb +48 -0
  72. data/lib/pdf/writer/strokestyle.rb +138 -0
  73. data/manual.pwd +5151 -0
  74. metadata +147 -0
@@ -0,0 +1,63 @@
1
+ #--
2
+ # PDF::Writer for Ruby.
3
+ # http://rubyforge.org/projects/ruby-pdf/
4
+ # Copyright 2003 - 2005 Austin Ziegler.
5
+ #
6
+ # Licensed under a MIT-style licence. See LICENCE in the main distribution
7
+ # for full licensing information.
8
+ #
9
+ # $Id: arc4.rb,v 1.2 2005/05/16 03:59:21 austin Exp $
10
+ #++
11
+ require 'digest/md5'
12
+
13
+ # ARC4 methods
14
+ # A series of function to implement ARC4 encoding in Ruby
15
+ class PDF::Writer::ARC4
16
+ # Initializes the ARC4 encryption with the specified key.
17
+ def initialize(key)
18
+ @key = key
19
+ end
20
+
21
+ # Initialize the encryption for processing a particular object.
22
+ def prepare(object)
23
+ hex = ("%06x" % [object.oid]).scan(/../).reverse
24
+ init(Digest::MD5.digest("#{@key}#{hex.pack('H10')}")[0...10])
25
+ end
26
+
27
+ # Initialize the ARC4 encryption.
28
+ def init(key)
29
+ @arc4 = ""
30
+
31
+ # Setup the control array
32
+ return if key.empty?
33
+
34
+ a = []
35
+ (0..255).each { |ii| a[ii] = "%c" % ii }
36
+
37
+ k = (key * 256)[0..255].split(//)
38
+
39
+ jj = 0
40
+ @arc4.each_with_index do |el, ii|
41
+ jj = ((jj + el.to_i) + k[ii].to_i) % 256
42
+ a[ii], a[jj] = a[jj], a[ii]
43
+ end
44
+ @arc4 = a.join
45
+ end
46
+
47
+ # ARC4 encrypt a text string
48
+ def encrypt(text)
49
+ len = text.size
50
+ a = b = 0
51
+ c = @arc4.dup
52
+ out = ""
53
+
54
+ text.each_byte do |x|
55
+ a = (a + 1) % 256
56
+ b = (b + c[a].to_i) % 256
57
+ c[a], c[b] = c[b], c[a]
58
+ k = (c[(c[a].to_i + c[b].to_i) % 256]).to_i
59
+ out << ("%c" % (x.to_i ^ k))
60
+ end
61
+ out
62
+ end
63
+ end
@@ -0,0 +1,201 @@
1
+ #--
2
+ # PDF::Writer for Ruby.
3
+ # http://rubyforge.org/projects/ruby-pdf/
4
+ # Copyright 2003 - 2005 Austin Ziegler.
5
+ #
6
+ # Licensed under a MIT-style licence. See LICENCE in the main distribution
7
+ # for full licensing information.
8
+ #
9
+ # $Id: fontmetrics.rb,v 1.3 2005/06/01 19:01:36 austin Exp $
10
+ #++
11
+ class PDF::Writer::FontMetrics
12
+ METRICS_PATH = [ File.join(File.dirname(File.expand_path(__FILE__)), 'fonts') ]
13
+
14
+ KEYS = %w{FontName FullName FamilyName Weight ItalicAngle IsFixedPitch
15
+ CharacterSet UnderlinePosition UnderlineThickness Version
16
+ EncodingScheme CapHeight XHeight Ascender Descender StdHW StdVW
17
+ StartCharMetrics FontBBox C KPX}
18
+ KEYS.each { |k| attr_accessor k.downcase.intern }
19
+
20
+ def initialize
21
+ @kpx = {}
22
+ @c = {}
23
+ @version = 1
24
+ @font_num = nil
25
+ end
26
+
27
+ attr_accessor :font_num
28
+ attr_accessor :path
29
+ attr_accessor :differences
30
+ attr_accessor :encoding
31
+
32
+ NUMBER = /^[+\-0-9.]+$/o
33
+
34
+ # Open the font file and return a PDF::Writer::FontMetrics object
35
+ # containing it. The +font_name+ may specify just a font file or a full
36
+ # path. If a path is specified, that is the only place where the font
37
+ # file will be looked for.
38
+ def self.open(font_name)
39
+ file = font_name.gsub(/\\/o, "/")
40
+ dir = File.dirname(file)
41
+ name = File.basename(file)
42
+
43
+ metrics_path = []
44
+
45
+ # Check to see if the directory is "." or a non-path
46
+ if dir == "."
47
+ metrics_path << dir << METRICS_PATH << $LOAD_PATH
48
+ elsif dir !~ %r{^(\w:|/)}o and dir.index("/")
49
+ METRICS_PATH.each { |path| metrics_path << File.join(path, dir) }
50
+ $LOAD_PATH.each { |path| metrics_path << File.join(path, dir) }
51
+ else
52
+ metric_path = [ dir ]
53
+ end
54
+ metrics_path.flatten!
55
+
56
+ font = nil
57
+ afm = nil
58
+
59
+ metrics_path.each do |path|
60
+ afm_file = File.join(path, "#{name}.afm").gsub(/\.afm\.afm$/o, ".afm")
61
+ rfm_file = "#{afm_file}.rfm"
62
+
63
+ # Attempt to unmarshal an .afm.rfm file first. If it is loaded,
64
+ # we're in good shape.
65
+ begin
66
+ if File.exists?(rfm_file)
67
+ data = File.open(rfm_file, "rb") { |file| file.read }
68
+ font = Marshal.load(data)
69
+ return font
70
+ end
71
+ rescue
72
+ nil
73
+ end
74
+
75
+ # Attempt to open and process the font.
76
+ File.open(afm_file, "rb") do |file|
77
+ font = PDF::Writer::FontMetrics.new
78
+
79
+ # An AFM file contains key names followed by valuees.
80
+ file.each do |line|
81
+ line.chomp!
82
+ line.strip!
83
+ key, *values = line.split
84
+ op = "#{key.downcase}=".to_sym
85
+
86
+ # I probably need to deal with MetricsSet. The default value is
87
+ # 0, which is writing direction 0 (W0X). If MetricsSet 1 is
88
+ # specified, then only writing direction 1 is present (W1X). If
89
+ # MetricsSet 2 is specified, then both W0X and W1X are present.
90
+
91
+ # Measurements are always 1/1000th of a scale factor (point
92
+ # size). So a 12pt character with a width of 222 is going to be
93
+ # 222 * 12 / 1000 or 2.664 points wide.
94
+ case key
95
+ when 'FontName', 'FullName', 'FamilyName', 'Weight',
96
+ 'IsFixedPitch', 'CharacterSet', 'Version', 'EncodingScheme'
97
+ # These values are string values.
98
+ font.__send__(op, values.join(" "))
99
+ when 'ItalicAngle', 'UnderlinePosition', 'UnderlineThickness',
100
+ 'CapHeight', 'XHeight', 'Ascender', 'Descender', 'StdHW',
101
+ 'StdVW', 'StartCharMetrics'
102
+ # These values are floating point values.
103
+ font.__send__(op, values.join(" ").to_f)
104
+ when 'FontBBox'
105
+ # These values are an array of floating point values
106
+ font.fontbbox = values.map { |el| el.to_f }
107
+ when 'C', 'CH'
108
+ # Individual Character Metrics Values:
109
+ # C <character number>
110
+ # CH <hex character number>
111
+ # One of C or CH must be provided. Specifies the encoding
112
+ # number for the character. -1 if the character is not
113
+ # encoded in the font.
114
+ #
115
+ # WX <x width number>
116
+ # W0X <x0 width number>
117
+ # W1X <x1 width number>
118
+ # Character width in x for writing direction 0 (WX, W0X)
119
+ # or 1 (W1X) where y is 0. Optional.
120
+ #
121
+ # WY <y width number>
122
+ # W0Y <y0 width number>
123
+ # W1Y <y1 width number>
124
+ # Character width in y for writing direction 0 (WY, W0Y)
125
+ # or 1 (W1Y) where x is 0. Optional.
126
+ #
127
+ # W <x width> <y width>
128
+ # W0 <x0 width> <y0 width>
129
+ # W1 <x1 width> <y1 width>
130
+ # Character width in x, y for writing direction 0 (W, W0)
131
+ # or 1 (W1). Optional.
132
+ #
133
+ # VV <x number> <y number>
134
+ # Same as VVector in the global font definition, but for
135
+ # this single character. Optional.
136
+ #
137
+ # N <name>
138
+ # The PostScript name of the font. Optional.
139
+ #
140
+ # B <llx> <lly> <urx> <ury>
141
+ # Character bounding box for the lower left corner and the
142
+ # upper right corner. Optional.
143
+ #
144
+ # L <sucessor> <ligature>
145
+ # Ligature sequence where both <successor> and <ligature>
146
+ # are N <names>. For the fragment "N f; L i fi; L l fl",
147
+ # two ligatures are defined: fi and fl. Optional,
148
+ # multiples permitted.
149
+ #
150
+ # C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;
151
+ bits = line.chomp.strip.split(/;/).collect { |r| r.strip }
152
+ dtmp = {}
153
+
154
+ bits.each do |bit|
155
+ b = bit.split
156
+ if b.size > 2
157
+ dtmp[b[0]] = []
158
+ b[1..-1].each do |z|
159
+ if z =~ NUMBER
160
+ dtmp[b[0]] << z.to_f
161
+ else
162
+ dtmp[b[0]] << z
163
+ end
164
+ end
165
+ elsif b.size == 2
166
+ if b[0] == 'C' and b[1] =~ NUMBER
167
+ dtmp[b[0]] = b[1].to_i
168
+ elsif b[0] == 'CH'
169
+ dtmp['C'] = b[1].to_i(16)
170
+ elsif b[1] =~ NUMBER
171
+ dtmp[b[0]] = b[1].to_f
172
+ else
173
+ dtmp[b[0]] = b[1]
174
+ end
175
+ end
176
+ end
177
+
178
+ font.c[dtmp['N']] = dtmp
179
+ font.c[dtmp['C']] = dtmp unless dtmp['C'].nil?
180
+ when 'KPX' # KPX Adieresis yacute -40
181
+ # KPX: Kerning Pair
182
+ font.kpx[values[0]] = { }
183
+ font.kpx[values[0]][values[1]] = values[2].to_f
184
+ end
185
+ end
186
+ font.path = afm_file
187
+ end rescue nil # Ignore file errors
188
+ break unless font.nil?
189
+ end
190
+
191
+ raise ArgumentError, "Font #{font_name} not found." if font.nil?
192
+ font
193
+ end
194
+
195
+ # Save the loaded font metrics file as a binary marshaled value.
196
+ def save_as_rfm
197
+ rfm = File.basename(@path).gsub(/\.afm.*$/, '')
198
+ rfm << ".afm.rfm"
199
+ File.open(rfm, "wb") { |file| file.write Marshal.dump(self) }
200
+ end
201
+ end
@@ -0,0 +1,342 @@
1
+ StartFontMetrics 4.1
2
+ Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
3
+ Comment Creation Date: Mon Jun 23 16:28:00 1997
4
+ Comment UniqueID 43048
5
+ Comment VMusage 41139 52164
6
+ FontName Courier-Bold
7
+ FullName Courier Bold
8
+ FamilyName Courier
9
+ Weight Bold
10
+ ItalicAngle 0
11
+ IsFixedPitch true
12
+ CharacterSet ExtendedRoman
13
+ FontBBox -113 -250 749 801
14
+ UnderlinePosition -100
15
+ UnderlineThickness 50
16
+ Version 003.000
17
+ Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
18
+ EncodingScheme AdobeStandardEncoding
19
+ CapHeight 562
20
+ XHeight 439
21
+ Ascender 629
22
+ Descender -157
23
+ StdHW 84
24
+ StdVW 106
25
+ StartCharMetrics 315
26
+ C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
27
+ C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ;
28
+ C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ;
29
+ C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ;
30
+ C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ;
31
+ C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ;
32
+ C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ;
33
+ C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ;
34
+ C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ;
35
+ C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ;
36
+ C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ;
37
+ C 43 ; WX 600 ; N plus ; B 71 39 529 478 ;
38
+ C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ;
39
+ C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
40
+ C 46 ; WX 600 ; N period ; B 192 -15 408 171 ;
41
+ C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ;
42
+ C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ;
43
+ C 49 ; WX 600 ; N one ; B 81 0 539 616 ;
44
+ C 50 ; WX 600 ; N two ; B 61 0 499 616 ;
45
+ C 51 ; WX 600 ; N three ; B 63 -15 501 616 ;
46
+ C 52 ; WX 600 ; N four ; B 53 0 507 616 ;
47
+ C 53 ; WX 600 ; N five ; B 70 -15 521 601 ;
48
+ C 54 ; WX 600 ; N six ; B 90 -15 521 616 ;
49
+ C 55 ; WX 600 ; N seven ; B 55 0 494 601 ;
50
+ C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ;
51
+ C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ;
52
+ C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ;
53
+ C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ;
54
+ C 60 ; WX 600 ; N less ; B 66 15 523 501 ;
55
+ C 61 ; WX 600 ; N equal ; B 71 118 529 398 ;
56
+ C 62 ; WX 600 ; N greater ; B 77 15 534 501 ;
57
+ C 63 ; WX 600 ; N question ; B 98 -14 501 580 ;
58
+ C 64 ; WX 600 ; N at ; B 16 -15 584 616 ;
59
+ C 65 ; WX 600 ; N A ; B -9 0 609 562 ;
60
+ C 66 ; WX 600 ; N B ; B 30 0 573 562 ;
61
+ C 67 ; WX 600 ; N C ; B 22 -18 560 580 ;
62
+ C 68 ; WX 600 ; N D ; B 30 0 594 562 ;
63
+ C 69 ; WX 600 ; N E ; B 25 0 560 562 ;
64
+ C 70 ; WX 600 ; N F ; B 39 0 570 562 ;
65
+ C 71 ; WX 600 ; N G ; B 22 -18 594 580 ;
66
+ C 72 ; WX 600 ; N H ; B 20 0 580 562 ;
67
+ C 73 ; WX 600 ; N I ; B 77 0 523 562 ;
68
+ C 74 ; WX 600 ; N J ; B 37 -18 601 562 ;
69
+ C 75 ; WX 600 ; N K ; B 21 0 599 562 ;
70
+ C 76 ; WX 600 ; N L ; B 39 0 578 562 ;
71
+ C 77 ; WX 600 ; N M ; B -2 0 602 562 ;
72
+ C 78 ; WX 600 ; N N ; B 8 -12 610 562 ;
73
+ C 79 ; WX 600 ; N O ; B 22 -18 578 580 ;
74
+ C 80 ; WX 600 ; N P ; B 48 0 559 562 ;
75
+ C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ;
76
+ C 82 ; WX 600 ; N R ; B 24 0 599 562 ;
77
+ C 83 ; WX 600 ; N S ; B 47 -22 553 582 ;
78
+ C 84 ; WX 600 ; N T ; B 21 0 579 562 ;
79
+ C 85 ; WX 600 ; N U ; B 4 -18 596 562 ;
80
+ C 86 ; WX 600 ; N V ; B -13 0 613 562 ;
81
+ C 87 ; WX 600 ; N W ; B -18 0 618 562 ;
82
+ C 88 ; WX 600 ; N X ; B 12 0 588 562 ;
83
+ C 89 ; WX 600 ; N Y ; B 12 0 589 562 ;
84
+ C 90 ; WX 600 ; N Z ; B 62 0 539 562 ;
85
+ C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ;
86
+ C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ;
87
+ C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ;
88
+ C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ;
89
+ C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
90
+ C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ;
91
+ C 97 ; WX 600 ; N a ; B 35 -15 570 454 ;
92
+ C 98 ; WX 600 ; N b ; B 0 -15 584 626 ;
93
+ C 99 ; WX 600 ; N c ; B 40 -15 545 459 ;
94
+ C 100 ; WX 600 ; N d ; B 20 -15 591 626 ;
95
+ C 101 ; WX 600 ; N e ; B 40 -15 563 454 ;
96
+ C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ;
97
+ C 103 ; WX 600 ; N g ; B 30 -146 580 454 ;
98
+ C 104 ; WX 600 ; N h ; B 5 0 592 626 ;
99
+ C 105 ; WX 600 ; N i ; B 77 0 523 658 ;
100
+ C 106 ; WX 600 ; N j ; B 63 -146 440 658 ;
101
+ C 107 ; WX 600 ; N k ; B 20 0 585 626 ;
102
+ C 108 ; WX 600 ; N l ; B 77 0 523 626 ;
103
+ C 109 ; WX 600 ; N m ; B -22 0 626 454 ;
104
+ C 110 ; WX 600 ; N n ; B 18 0 592 454 ;
105
+ C 111 ; WX 600 ; N o ; B 30 -15 570 454 ;
106
+ C 112 ; WX 600 ; N p ; B -1 -142 570 454 ;
107
+ C 113 ; WX 600 ; N q ; B 20 -142 591 454 ;
108
+ C 114 ; WX 600 ; N r ; B 47 0 580 454 ;
109
+ C 115 ; WX 600 ; N s ; B 68 -17 535 459 ;
110
+ C 116 ; WX 600 ; N t ; B 47 -15 532 562 ;
111
+ C 117 ; WX 600 ; N u ; B -1 -15 569 439 ;
112
+ C 118 ; WX 600 ; N v ; B -1 0 601 439 ;
113
+ C 119 ; WX 600 ; N w ; B -18 0 618 439 ;
114
+ C 120 ; WX 600 ; N x ; B 6 0 594 439 ;
115
+ C 121 ; WX 600 ; N y ; B -4 -142 601 439 ;
116
+ C 122 ; WX 600 ; N z ; B 81 0 520 439 ;
117
+ C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ;
118
+ C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ;
119
+ C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ;
120
+ C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ;
121
+ C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ;
122
+ C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ;
123
+ C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ;
124
+ C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ;
125
+ C 165 ; WX 600 ; N yen ; B 10 0 590 562 ;
126
+ C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ;
127
+ C 167 ; WX 600 ; N section ; B 83 -70 517 580 ;
128
+ C 168 ; WX 600 ; N currency ; B 54 49 546 517 ;
129
+ C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ;
130
+ C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ;
131
+ C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ;
132
+ C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ;
133
+ C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ;
134
+ C 174 ; WX 600 ; N fi ; B 12 0 593 626 ;
135
+ C 175 ; WX 600 ; N fl ; B 12 0 593 626 ;
136
+ C 177 ; WX 600 ; N endash ; B 65 203 535 313 ;
137
+ C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ;
138
+ C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ;
139
+ C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ;
140
+ C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ;
141
+ C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ;
142
+ C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ;
143
+ C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ;
144
+ C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ;
145
+ C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ;
146
+ C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ;
147
+ C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ;
148
+ C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ;
149
+ C 193 ; WX 600 ; N grave ; B 132 508 395 661 ;
150
+ C 194 ; WX 600 ; N acute ; B 205 508 468 661 ;
151
+ C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ;
152
+ C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ;
153
+ C 197 ; WX 600 ; N macron ; B 88 505 512 585 ;
154
+ C 198 ; WX 600 ; N breve ; B 83 468 517 631 ;
155
+ C 199 ; WX 600 ; N dotaccent ; B 230 498 370 638 ;
156
+ C 200 ; WX 600 ; N dieresis ; B 128 498 472 638 ;
157
+ C 202 ; WX 600 ; N ring ; B 198 481 402 678 ;
158
+ C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ;
159
+ C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ;
160
+ C 206 ; WX 600 ; N ogonek ; B 169 -199 400 0 ;
161
+ C 207 ; WX 600 ; N caron ; B 103 493 497 667 ;
162
+ C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ;
163
+ C 225 ; WX 600 ; N AE ; B -29 0 602 562 ;
164
+ C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ;
165
+ C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ;
166
+ C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ;
167
+ C 234 ; WX 600 ; N OE ; B -25 0 595 562 ;
168
+ C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ;
169
+ C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ;
170
+ C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ;
171
+ C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ;
172
+ C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ;
173
+ C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ;
174
+ C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ;
175
+ C -1 ; WX 600 ; N Idieresis ; B 77 0 523 761 ;
176
+ C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ;
177
+ C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ;
178
+ C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ;
179
+ C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ;
180
+ C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ;
181
+ C -1 ; WX 600 ; N divide ; B 71 16 529 500 ;
182
+ C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ;
183
+ C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ;
184
+ C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ;
185
+ C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ;
186
+ C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ;
187
+ C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ;
188
+ C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ;
189
+ C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ;
190
+ C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ;
191
+ C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ;
192
+ C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ;
193
+ C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ;
194
+ C -1 ; WX 600 ; N Edieresis ; B 25 0 560 761 ;
195
+ C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ;
196
+ C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ;
197
+ C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
198
+ C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ;
199
+ C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ;
200
+ C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ;
201
+ C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ;
202
+ C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ;
203
+ C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ;
204
+ C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ;
205
+ C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ;
206
+ C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ;
207
+ C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ;
208
+ C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ;
209
+ C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ;
210
+ C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ;
211
+ C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ;
212
+ C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ;
213
+ C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ;
214
+ C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ;
215
+ C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ;
216
+ C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ;
217
+ C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ;
218
+ C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ;
219
+ C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ;
220
+ C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ;
221
+ C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ;
222
+ C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ;
223
+ C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ;
224
+ C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ;
225
+ C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ;
226
+ C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ;
227
+ C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ;
228
+ C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ;
229
+ C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ;
230
+ C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ;
231
+ C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ;
232
+ C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ;
233
+ C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ;
234
+ C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ;
235
+ C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ;
236
+ C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ;
237
+ C -1 ; WX 600 ; N icircumflex ; B 73 0 523 657 ;
238
+ C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ;
239
+ C -1 ; WX 600 ; N adieresis ; B 35 -15 570 638 ;
240
+ C -1 ; WX 600 ; N edieresis ; B 40 -15 563 638 ;
241
+ C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ;
242
+ C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ;
243
+ C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ;
244
+ C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ;
245
+ C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ;
246
+ C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ;
247
+ C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ;
248
+ C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ;
249
+ C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ;
250
+ C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ;
251
+ C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
252
+ C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ;
253
+ C -1 ; WX 600 ; N racute ; B 47 0 580 661 ;
254
+ C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ;
255
+ C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ;
256
+ C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ;
257
+ C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ;
258
+ C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ;
259
+ C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ;
260
+ C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ;
261
+ C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ;
262
+ C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ;
263
+ C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ;
264
+ C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ;
265
+ C -1 ; WX 600 ; N Adieresis ; B -9 0 609 761 ;
266
+ C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ;
267
+ C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ;
268
+ C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ;
269
+ C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ;
270
+ C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ;
271
+ C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ;
272
+ C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ;
273
+ C -1 ; WX 600 ; N idieresis ; B 77 0 523 618 ;
274
+ C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ;
275
+ C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ;
276
+ C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
277
+ C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ;
278
+ C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ;
279
+ C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ;
280
+ C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ;
281
+ C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ;
282
+ C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ;
283
+ C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ;
284
+ C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ;
285
+ C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ;
286
+ C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ;
287
+ C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ;
288
+ C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ;
289
+ C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ;
290
+ C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ;
291
+ C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ;
292
+ C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ;
293
+ C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ;
294
+ C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ;
295
+ C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ;
296
+ C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ;
297
+ C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ;
298
+ C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ;
299
+ C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ;
300
+ C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ;
301
+ C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ;
302
+ C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ;
303
+ C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ;
304
+ C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ;
305
+ C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ;
306
+ C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ;
307
+ C -1 ; WX 600 ; N degree ; B 86 243 474 616 ;
308
+ C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ;
309
+ C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ;
310
+ C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ;
311
+ C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ;
312
+ C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ;
313
+ C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ;
314
+ C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ;
315
+ C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ;
316
+ C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ;
317
+ C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ;
318
+ C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ;
319
+ C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ;
320
+ C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ;
321
+ C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ;
322
+ C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ;
323
+ C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ;
324
+ C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ;
325
+ C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ;
326
+ C -1 ; WX 600 ; N minus ; B 71 203 529 313 ;
327
+ C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ;
328
+ C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ;
329
+ C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ;
330
+ C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ;
331
+ C -1 ; WX 600 ; N odieresis ; B 30 -15 570 638 ;
332
+ C -1 ; WX 600 ; N udieresis ; B -1 -15 569 638 ;
333
+ C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ;
334
+ C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ;
335
+ C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ;
336
+ C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ;
337
+ C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ;
338
+ C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ;
339
+ C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ;
340
+ C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ;
341
+ EndCharMetrics
342
+ EndFontMetrics