rocrad 0.1.4 → 0.1.5

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
@@ -88,7 +88,7 @@ class Rocrad
88
88
  begin
89
89
  File.unlink(file) if File.exist?(file)
90
90
  rescue
91
- system "rm -f #{file} #{cco}"
91
+ `rm -f #{file} #{cco}`
92
92
  end
93
93
  end
94
94
  end
@@ -97,7 +97,7 @@ class Rocrad
97
97
  def image_to_pnm
98
98
  src = @tmp ? @tmp : @src
99
99
  pnm = Pathname.new(Dir::tmpdir).join("#{@uid.generate}_#{@src.sub(@src.extname, ".pnm").basename}")
100
- case @src.extname
100
+ case @src.extname.downcase
101
101
  when ".jpg" then
102
102
  `djpeg -colors 2 -grayscale -dct float -pnm #{src} > #{pnm} #{cco}`
103
103
  when ".tif" then
@@ -106,6 +106,8 @@ class Rocrad
106
106
  `pngtopnm #{src} > #{pnm} #{cco}`
107
107
  when ".bmp" then
108
108
  `bmptopnm #{src} > #{pnm} #{cco}`
109
+ when ".pdf", ".ps" then
110
+ `gs -sDEVICE=pnmraw -r300 -dNOPAUSE -dBATCH -sOutputFile=- -q #{src} > #{pnm} #{cco}`
109
111
  else
110
112
  raise UnsupportedFileTypeError
111
113
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rocrad}
8
- s.version = "0.1.4"
8
+ s.version = "0.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ludwig Bratke"]
12
- s.date = %q{2011-05-29}
12
+ s.date = %q{2011-06-27}
13
13
  s.description = %q{Ruby library for working with Ocrad - The GNU OCR}
14
14
  s.email = %q{EeCnee1@netscape.net}
15
15
  s.extra_rdoc_files = [
@@ -35,7 +35,9 @@ Gem::Specification.new do |s|
35
35
  "test/images/test.bmp",
36
36
  "test/images/test.foo",
37
37
  "test/images/test.jpg",
38
+ "test/images/test.pdf",
38
39
  "test/images/test.png",
40
+ "test/images/test.ps",
39
41
  "test/images/test.tif",
40
42
  "test/images/test1.tif",
41
43
  "test/test_binary.rb",
Binary file
@@ -0,0 +1,1163 @@
1
+ %!PS-Adobe-3.0
2
+ %%Creator: Writer
3
+ %%LanguageLevel: 2
4
+ %%DocumentSuppliedResources: (atend)
5
+ %%DocumentMedia: plain 612 792 0 () ()
6
+ %%BoundingBox: 0 0 612 792
7
+ %%Pages: 1
8
+ %%EndComments
9
+ %%BeginDefaults
10
+ %%PageMedia: plain
11
+ %%EndDefaults
12
+ %%BeginProlog
13
+ %%BeginResource: procset xpdf 3.00 0
14
+ %%Copyright: Copyright 1996-2004 Glyph & Cog, LLC
15
+ /xpdf 75 dict def xpdf begin
16
+ % PDF special state
17
+ /pdfDictSize 15 def
18
+ /pdfSetup {
19
+ 3 1 roll 2 array astore
20
+ /setpagedevice where {
21
+ pop 3 dict begin
22
+ /PageSize exch def
23
+ /ImagingBBox null def
24
+ { /Duplex true def } if
25
+ currentdict end setpagedevice
26
+ } {
27
+ pop pop
28
+ } ifelse
29
+ } def
30
+ /pdfStartPage {
31
+ pdfDictSize dict begin
32
+ /pdfFillCS [] def
33
+ /pdfFillXform {} def
34
+ /pdfStrokeCS [] def
35
+ /pdfStrokeXform {} def
36
+ /pdfFill [0] def
37
+ /pdfStroke [0] def
38
+ /pdfFillOP false def
39
+ /pdfStrokeOP false def
40
+ /pdfLastFill false def
41
+ /pdfLastStroke false def
42
+ /pdfTextMat [1 0 0 1 0 0] def
43
+ /pdfFontSize 0 def
44
+ /pdfCharSpacing 0 def
45
+ /pdfTextRender 0 def
46
+ /pdfTextRise 0 def
47
+ /pdfWordSpacing 0 def
48
+ /pdfHorizScaling 1 def
49
+ /pdfTextClipPath [] def
50
+ } def
51
+ /pdfEndPage { end } def
52
+ % PDF color state
53
+ /cs { /pdfFillXform exch def dup /pdfFillCS exch def
54
+ setcolorspace } def
55
+ /CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def
56
+ setcolorspace } def
57
+ /sc { pdfLastFill not { pdfFillCS setcolorspace } if
58
+ dup /pdfFill exch def aload pop pdfFillXform setcolor
59
+ /pdfLastFill true def /pdfLastStroke false def } def
60
+ /SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if
61
+ dup /pdfStroke exch def aload pop pdfStrokeXform setcolor
62
+ /pdfLastStroke true def /pdfLastFill false def } def
63
+ /op { /pdfFillOP exch def
64
+ pdfLastFill { pdfFillOP setoverprint } if } def
65
+ /OP { /pdfStrokeOP exch def
66
+ pdfLastStroke { pdfStrokeOP setoverprint } if } def
67
+ /fCol {
68
+ pdfLastFill not {
69
+ pdfFillCS setcolorspace
70
+ pdfFill aload pop pdfFillXform setcolor
71
+ pdfFillOP setoverprint
72
+ /pdfLastFill true def /pdfLastStroke false def
73
+ } if
74
+ } def
75
+ /sCol {
76
+ pdfLastStroke not {
77
+ pdfStrokeCS setcolorspace
78
+ pdfStroke aload pop pdfStrokeXform setcolor
79
+ pdfStrokeOP setoverprint
80
+ /pdfLastStroke true def /pdfLastFill false def
81
+ } if
82
+ } def
83
+ % build a font
84
+ /pdfMakeFont {
85
+ 4 3 roll findfont
86
+ 4 2 roll matrix scale makefont
87
+ dup length dict begin
88
+ { 1 index /FID ne { def } { pop pop } ifelse } forall
89
+ /Encoding exch def
90
+ currentdict
91
+ end
92
+ definefont pop
93
+ } def
94
+ /pdfMakeFont16 {
95
+ exch findfont
96
+ dup length dict begin
97
+ { 1 index /FID ne { def } { pop pop } ifelse } forall
98
+ /WMode exch def
99
+ currentdict
100
+ end
101
+ definefont pop
102
+ } def
103
+ % graphics state operators
104
+ /q { gsave pdfDictSize dict begin } def
105
+ /Q {
106
+ end grestore
107
+ /pdfLastFill where {
108
+ pop
109
+ pdfLastFill {
110
+ pdfFillOP setoverprint
111
+ } {
112
+ pdfStrokeOP setoverprint
113
+ } ifelse
114
+ } if
115
+ } def
116
+ /cm { concat } def
117
+ /d { setdash } def
118
+ /i { setflat } def
119
+ /j { setlinejoin } def
120
+ /J { setlinecap } def
121
+ /M { setmiterlimit } def
122
+ /w { setlinewidth } def
123
+ % path segment operators
124
+ /m { moveto } def
125
+ /l { lineto } def
126
+ /c { curveto } def
127
+ /re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
128
+ neg 0 rlineto closepath } def
129
+ /h { closepath } def
130
+ % path painting operators
131
+ /S { sCol stroke } def
132
+ /Sf { fCol stroke } def
133
+ /f { fCol fill } def
134
+ /f* { fCol eofill } def
135
+ % clipping operators
136
+ /W { clip newpath } def
137
+ /W* { eoclip newpath } def
138
+ /Ws { strokepath clip newpath } def
139
+ % text state operators
140
+ /Tc { /pdfCharSpacing exch def } def
141
+ /Tf { dup /pdfFontSize exch def
142
+ dup pdfHorizScaling mul exch matrix scale
143
+ pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
144
+ exch findfont exch makefont setfont } def
145
+ /Tr { /pdfTextRender exch def } def
146
+ /Ts { /pdfTextRise exch def } def
147
+ /Tw { /pdfWordSpacing exch def } def
148
+ /Tz { /pdfHorizScaling exch def } def
149
+ % text positioning operators
150
+ /Td { pdfTextMat transform moveto } def
151
+ /Tm { /pdfTextMat exch def } def
152
+ % text string operators
153
+ /cshow where {
154
+ pop
155
+ /cshow2 {
156
+ dup {
157
+ pop pop
158
+ 1 string dup 0 3 index put 3 index exec
159
+ } exch cshow
160
+ pop pop
161
+ } def
162
+ }{
163
+ /cshow2 {
164
+ currentfont /FontType get 0 eq {
165
+ 0 2 2 index length 1 sub {
166
+ 2 copy get exch 1 add 2 index exch get
167
+ 2 copy exch 256 mul add
168
+ 2 string dup 0 6 5 roll put dup 1 5 4 roll put
169
+ 3 index exec
170
+ } for
171
+ } {
172
+ dup {
173
+ 1 string dup 0 3 index put 3 index exec
174
+ } forall
175
+ } ifelse
176
+ pop pop
177
+ } def
178
+ } ifelse
179
+ /awcp {
180
+ exch {
181
+ false charpath
182
+ 5 index 5 index rmoveto
183
+ 6 index eq { 7 index 7 index rmoveto } if
184
+ } exch cshow2
185
+ 6 {pop} repeat
186
+ } def
187
+ /Tj {
188
+ fCol
189
+ 1 index stringwidth pdfTextMat idtransform pop
190
+ sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
191
+ pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
192
+ 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
193
+ pdfTextMat dtransform
194
+ 6 5 roll Tj1
195
+ } def
196
+ /Tj16 {
197
+ fCol
198
+ 2 index stringwidth pdfTextMat idtransform pop
199
+ sub exch div
200
+ pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
201
+ 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
202
+ pdfTextMat dtransform
203
+ 6 5 roll Tj1
204
+ } def
205
+ /Tj16V {
206
+ fCol
207
+ 2 index stringwidth pdfTextMat idtransform exch pop
208
+ sub exch div
209
+ 0 pdfWordSpacing pdfTextMat dtransform 32
210
+ 4 3 roll pdfCharSpacing add 0 exch
211
+ pdfTextMat dtransform
212
+ 6 5 roll Tj1
213
+ } def
214
+ /Tj1 {
215
+ 0 pdfTextRise pdfTextMat dtransform rmoveto
216
+ currentpoint 8 2 roll
217
+ pdfTextRender 1 and 0 eq {
218
+ 6 copy awidthshow
219
+ } if
220
+ pdfTextRender 3 and dup 1 eq exch 2 eq or {
221
+ 7 index 7 index moveto
222
+ 6 copy
223
+ currentfont /FontType get 3 eq { fCol } { sCol } ifelse
224
+ false awcp currentpoint stroke moveto
225
+ } if
226
+ pdfTextRender 4 and 0 ne {
227
+ 8 6 roll moveto
228
+ false awcp
229
+ /pdfTextClipPath [ pdfTextClipPath aload pop
230
+ {/moveto cvx}
231
+ {/lineto cvx}
232
+ {/curveto cvx}
233
+ {/closepath cvx}
234
+ pathforall ] def
235
+ currentpoint newpath moveto
236
+ } {
237
+ 8 {pop} repeat
238
+ } ifelse
239
+ 0 pdfTextRise neg pdfTextMat dtransform rmoveto
240
+ } def
241
+ /TJm { pdfFontSize 0.001 mul mul neg 0
242
+ pdfTextMat dtransform rmoveto } def
243
+ /TJmV { pdfFontSize 0.001 mul mul neg 0 exch
244
+ pdfTextMat dtransform rmoveto } def
245
+ /Tclip { pdfTextClipPath cvx exec clip newpath
246
+ /pdfTextClipPath [] def } def
247
+ /Tclip* { pdfTextClipPath cvx exec eoclip newpath
248
+ /pdfTextClipPath [] def } def
249
+ % Level 2 image operators
250
+ /pdfImBuf 100 string def
251
+ /pdfIm {
252
+ image
253
+ { currentfile pdfImBuf readline
254
+ not { pop exit } if
255
+ (%-EOD-) eq { exit } if } loop
256
+ } def
257
+ /pdfImM {
258
+ fCol imagemask
259
+ { currentfile pdfImBuf readline
260
+ not { pop exit } if
261
+ (%-EOD-) eq { exit } if } loop
262
+ } def
263
+ /pr { 2 index 2 index 3 2 roll putinterval 4 add } def
264
+ /pdfImClip {
265
+ gsave
266
+ 0 2 4 index length 1 sub {
267
+ dup 4 index exch 2 copy
268
+ get 5 index div put
269
+ 1 add 3 index exch 2 copy
270
+ get 3 index div put
271
+ } for
272
+ pop pop rectclip
273
+ } def
274
+ /pdfImClipEnd { grestore } def
275
+ % shading operators
276
+ /colordelta {
277
+ false 0 1 3 index length 1 sub {
278
+ dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {
279
+ pop true
280
+ } if
281
+ } for
282
+ exch pop exch pop
283
+ } def
284
+ /funcCol { func n array astore } def
285
+ /funcSH {
286
+ dup 0 eq {
287
+ true
288
+ } {
289
+ dup 6 eq {
290
+ false
291
+ } {
292
+ 4 index 4 index funcCol dup
293
+ 6 index 4 index funcCol dup
294
+ 3 1 roll colordelta 3 1 roll
295
+ 5 index 5 index funcCol dup
296
+ 3 1 roll colordelta 3 1 roll
297
+ 6 index 8 index funcCol dup
298
+ 3 1 roll colordelta 3 1 roll
299
+ colordelta or or or
300
+ } ifelse
301
+ } ifelse
302
+ {
303
+ 1 add
304
+ 4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch
305
+ 6 index 6 index 4 index 4 index 4 index funcSH
306
+ 2 index 6 index 6 index 4 index 4 index funcSH
307
+ 6 index 2 index 4 index 6 index 4 index funcSH
308
+ 5 3 roll 3 2 roll funcSH pop pop
309
+ } {
310
+ pop 3 index 2 index add 0.5 mul 3 index 2 index add 0.5 mul
311
+ funcCol sc
312
+ dup 4 index exch mat transform m
313
+ 3 index 3 index mat transform l
314
+ 1 index 3 index mat transform l
315
+ mat transform l pop pop h f*
316
+ } ifelse
317
+ } def
318
+ /axialCol {
319
+ dup 0 lt {
320
+ pop t0
321
+ } {
322
+ dup 1 gt {
323
+ pop t1
324
+ } {
325
+ dt mul t0 add
326
+ } ifelse
327
+ } ifelse
328
+ func n array astore
329
+ } def
330
+ /axialSH {
331
+ dup 0 eq {
332
+ true
333
+ } {
334
+ dup 8 eq {
335
+ false
336
+ } {
337
+ 2 index axialCol 2 index axialCol colordelta
338
+ } ifelse
339
+ } ifelse
340
+ {
341
+ 1 add 3 1 roll 2 copy add 0.5 mul
342
+ dup 4 3 roll exch 4 index axialSH
343
+ exch 3 2 roll axialSH
344
+ } {
345
+ pop 2 copy add 0.5 mul
346
+ axialCol sc
347
+ exch dup dx mul x0 add exch dy mul y0 add
348
+ 3 2 roll dup dx mul x0 add exch dy mul y0 add
349
+ dx abs dy abs ge {
350
+ 2 copy yMin sub dy mul dx div add yMin m
351
+ yMax sub dy mul dx div add yMax l
352
+ 2 copy yMax sub dy mul dx div add yMax l
353
+ yMin sub dy mul dx div add yMin l
354
+ h f*
355
+ } {
356
+ exch 2 copy xMin sub dx mul dy div add xMin exch m
357
+ xMax sub dx mul dy div add xMax exch l
358
+ exch 2 copy xMax sub dx mul dy div add xMax exch l
359
+ xMin sub dx mul dy div add xMin exch l
360
+ h f*
361
+ } ifelse
362
+ } ifelse
363
+ } def
364
+ /radialCol {
365
+ dup t0 lt {
366
+ pop t0
367
+ } {
368
+ dup t1 gt {
369
+ pop t1
370
+ } if
371
+ } ifelse
372
+ func n array astore
373
+ } def
374
+ /radialSH {
375
+ dup 0 eq {
376
+ true
377
+ } {
378
+ dup 8 eq {
379
+ false
380
+ } {
381
+ 2 index dt mul t0 add radialCol
382
+ 2 index dt mul t0 add radialCol colordelta
383
+ } ifelse
384
+ } ifelse
385
+ {
386
+ 1 add 3 1 roll 2 copy add 0.5 mul
387
+ dup 4 3 roll exch 4 index radialSH
388
+ exch 3 2 roll radialSH
389
+ } {
390
+ pop 2 copy add 0.5 mul dt mul t0 add
391
+ radialCol sc
392
+ encl {
393
+ exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
394
+ 0 360 arc h
395
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
396
+ 360 0 arcn h f
397
+ } {
398
+ 2 copy
399
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
400
+ a1 a2 arcn
401
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
402
+ a2 a1 arcn h
403
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
404
+ a1 a2 arc
405
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
406
+ a2 a1 arc h f
407
+ } ifelse
408
+ } ifelse
409
+ } def
410
+ end
411
+ %%EndResource
412
+ %%EndProlog
413
+ %%BeginSetup
414
+ xpdf begin
415
+ %%BeginResource: font BAAAAA+TimesNewRomanPSMT
416
+ %!PS-TrueTypeFont-29810
417
+ 10 dict begin
418
+ /FontName /BAAAAA+TimesNewRomanPSMT def
419
+ /FontType 42 def
420
+ /FontMatrix [1 0 0 1 0 0] def
421
+ /FontBBox [0 -28 1280 1422] def
422
+ /PaintType 0 def
423
+ /Encoding 256 array
424
+ dup 0 /c00 put
425
+ dup 1 /c01 put
426
+ dup 2 /c02 put
427
+ dup 3 /c03 put
428
+ dup 4 /c04 put
429
+ dup 5 /c05 put
430
+ dup 6 /c06 put
431
+ dup 7 /c07 put
432
+ dup 8 /c08 put
433
+ dup 9 /c09 put
434
+ dup 10 /c0a put
435
+ dup 11 /c0b put
436
+ dup 12 /c0c put
437
+ dup 13 /c0d put
438
+ dup 14 /c0e put
439
+ dup 15 /c0f put
440
+ dup 16 /c10 put
441
+ dup 17 /c11 put
442
+ dup 18 /c12 put
443
+ dup 19 /c13 put
444
+ dup 20 /c14 put
445
+ dup 21 /c15 put
446
+ dup 22 /c16 put
447
+ dup 23 /c17 put
448
+ dup 24 /c18 put
449
+ dup 25 /c19 put
450
+ dup 26 /c1a put
451
+ dup 27 /c1b put
452
+ dup 28 /c1c put
453
+ dup 29 /c1d put
454
+ dup 30 /c1e put
455
+ dup 31 /c1f put
456
+ dup 32 /c20 put
457
+ dup 33 /c21 put
458
+ dup 34 /c22 put
459
+ dup 35 /c23 put
460
+ dup 36 /c24 put
461
+ dup 37 /c25 put
462
+ dup 38 /c26 put
463
+ dup 39 /c27 put
464
+ dup 40 /c28 put
465
+ dup 41 /c29 put
466
+ dup 42 /c2a put
467
+ dup 43 /c2b put
468
+ dup 44 /c2c put
469
+ dup 45 /c2d put
470
+ dup 46 /c2e put
471
+ dup 47 /c2f put
472
+ dup 48 /c30 put
473
+ dup 49 /c31 put
474
+ dup 50 /c32 put
475
+ dup 51 /c33 put
476
+ dup 52 /c34 put
477
+ dup 53 /c35 put
478
+ dup 54 /c36 put
479
+ dup 55 /c37 put
480
+ dup 56 /c38 put
481
+ dup 57 /c39 put
482
+ dup 58 /c3a put
483
+ dup 59 /c3b put
484
+ dup 60 /c3c put
485
+ dup 61 /c3d put
486
+ dup 62 /c3e put
487
+ dup 63 /c3f put
488
+ dup 64 /c40 put
489
+ dup 65 /c41 put
490
+ dup 66 /c42 put
491
+ dup 67 /c43 put
492
+ dup 68 /c44 put
493
+ dup 69 /c45 put
494
+ dup 70 /c46 put
495
+ dup 71 /c47 put
496
+ dup 72 /c48 put
497
+ dup 73 /c49 put
498
+ dup 74 /c4a put
499
+ dup 75 /c4b put
500
+ dup 76 /c4c put
501
+ dup 77 /c4d put
502
+ dup 78 /c4e put
503
+ dup 79 /c4f put
504
+ dup 80 /c50 put
505
+ dup 81 /c51 put
506
+ dup 82 /c52 put
507
+ dup 83 /c53 put
508
+ dup 84 /c54 put
509
+ dup 85 /c55 put
510
+ dup 86 /c56 put
511
+ dup 87 /c57 put
512
+ dup 88 /c58 put
513
+ dup 89 /c59 put
514
+ dup 90 /c5a put
515
+ dup 91 /c5b put
516
+ dup 92 /c5c put
517
+ dup 93 /c5d put
518
+ dup 94 /c5e put
519
+ dup 95 /c5f put
520
+ dup 96 /c60 put
521
+ dup 97 /c61 put
522
+ dup 98 /c62 put
523
+ dup 99 /c63 put
524
+ dup 100 /c64 put
525
+ dup 101 /c65 put
526
+ dup 102 /c66 put
527
+ dup 103 /c67 put
528
+ dup 104 /c68 put
529
+ dup 105 /c69 put
530
+ dup 106 /c6a put
531
+ dup 107 /c6b put
532
+ dup 108 /c6c put
533
+ dup 109 /c6d put
534
+ dup 110 /c6e put
535
+ dup 111 /c6f put
536
+ dup 112 /c70 put
537
+ dup 113 /c71 put
538
+ dup 114 /c72 put
539
+ dup 115 /c73 put
540
+ dup 116 /c74 put
541
+ dup 117 /c75 put
542
+ dup 118 /c76 put
543
+ dup 119 /c77 put
544
+ dup 120 /c78 put
545
+ dup 121 /c79 put
546
+ dup 122 /c7a put
547
+ dup 123 /c7b put
548
+ dup 124 /c7c put
549
+ dup 125 /c7d put
550
+ dup 126 /c7e put
551
+ dup 127 /c7f put
552
+ dup 128 /c80 put
553
+ dup 129 /c81 put
554
+ dup 130 /c82 put
555
+ dup 131 /c83 put
556
+ dup 132 /c84 put
557
+ dup 133 /c85 put
558
+ dup 134 /c86 put
559
+ dup 135 /c87 put
560
+ dup 136 /c88 put
561
+ dup 137 /c89 put
562
+ dup 138 /c8a put
563
+ dup 139 /c8b put
564
+ dup 140 /c8c put
565
+ dup 141 /c8d put
566
+ dup 142 /c8e put
567
+ dup 143 /c8f put
568
+ dup 144 /c90 put
569
+ dup 145 /c91 put
570
+ dup 146 /c92 put
571
+ dup 147 /c93 put
572
+ dup 148 /c94 put
573
+ dup 149 /c95 put
574
+ dup 150 /c96 put
575
+ dup 151 /c97 put
576
+ dup 152 /c98 put
577
+ dup 153 /c99 put
578
+ dup 154 /c9a put
579
+ dup 155 /c9b put
580
+ dup 156 /c9c put
581
+ dup 157 /c9d put
582
+ dup 158 /c9e put
583
+ dup 159 /c9f put
584
+ dup 160 /ca0 put
585
+ dup 161 /ca1 put
586
+ dup 162 /ca2 put
587
+ dup 163 /ca3 put
588
+ dup 164 /ca4 put
589
+ dup 165 /ca5 put
590
+ dup 166 /ca6 put
591
+ dup 167 /ca7 put
592
+ dup 168 /ca8 put
593
+ dup 169 /ca9 put
594
+ dup 170 /caa put
595
+ dup 171 /cab put
596
+ dup 172 /cac put
597
+ dup 173 /cad put
598
+ dup 174 /cae put
599
+ dup 175 /caf put
600
+ dup 176 /cb0 put
601
+ dup 177 /cb1 put
602
+ dup 178 /cb2 put
603
+ dup 179 /cb3 put
604
+ dup 180 /cb4 put
605
+ dup 181 /cb5 put
606
+ dup 182 /cb6 put
607
+ dup 183 /cb7 put
608
+ dup 184 /cb8 put
609
+ dup 185 /cb9 put
610
+ dup 186 /cba put
611
+ dup 187 /cbb put
612
+ dup 188 /cbc put
613
+ dup 189 /cbd put
614
+ dup 190 /cbe put
615
+ dup 191 /cbf put
616
+ dup 192 /cc0 put
617
+ dup 193 /cc1 put
618
+ dup 194 /cc2 put
619
+ dup 195 /cc3 put
620
+ dup 196 /cc4 put
621
+ dup 197 /cc5 put
622
+ dup 198 /cc6 put
623
+ dup 199 /cc7 put
624
+ dup 200 /cc8 put
625
+ dup 201 /cc9 put
626
+ dup 202 /cca put
627
+ dup 203 /ccb put
628
+ dup 204 /ccc put
629
+ dup 205 /ccd put
630
+ dup 206 /cce put
631
+ dup 207 /ccf put
632
+ dup 208 /cd0 put
633
+ dup 209 /cd1 put
634
+ dup 210 /cd2 put
635
+ dup 211 /cd3 put
636
+ dup 212 /cd4 put
637
+ dup 213 /cd5 put
638
+ dup 214 /cd6 put
639
+ dup 215 /cd7 put
640
+ dup 216 /cd8 put
641
+ dup 217 /cd9 put
642
+ dup 218 /cda put
643
+ dup 219 /cdb put
644
+ dup 220 /cdc put
645
+ dup 221 /cdd put
646
+ dup 222 /cde put
647
+ dup 223 /cdf put
648
+ dup 224 /ce0 put
649
+ dup 225 /ce1 put
650
+ dup 226 /ce2 put
651
+ dup 227 /ce3 put
652
+ dup 228 /ce4 put
653
+ dup 229 /ce5 put
654
+ dup 230 /ce6 put
655
+ dup 231 /ce7 put
656
+ dup 232 /ce8 put
657
+ dup 233 /ce9 put
658
+ dup 234 /cea put
659
+ dup 235 /ceb put
660
+ dup 236 /cec put
661
+ dup 237 /ced put
662
+ dup 238 /cee put
663
+ dup 239 /cef put
664
+ dup 240 /cf0 put
665
+ dup 241 /cf1 put
666
+ dup 242 /cf2 put
667
+ dup 243 /cf3 put
668
+ dup 244 /cf4 put
669
+ dup 245 /cf5 put
670
+ dup 246 /cf6 put
671
+ dup 247 /cf7 put
672
+ dup 248 /cf8 put
673
+ dup 249 /cf9 put
674
+ dup 250 /cfa put
675
+ dup 251 /cfb put
676
+ dup 252 /cfc put
677
+ dup 253 /cfd put
678
+ dup 254 /cfe put
679
+ dup 255 /cff put
680
+ readonly def
681
+ /CharStrings 256 dict dup begin
682
+ /.notdef 0 def
683
+ /c09 9 def
684
+ /c08 8 def
685
+ /c07 7 def
686
+ /c06 6 def
687
+ /c05 5 def
688
+ /c04 4 def
689
+ /c03 3 def
690
+ /c02 2 def
691
+ /c01 1 def
692
+ end readonly def
693
+ /sfnts [
694
+ <00010000000900800003001063767420f34dda810000009c000007c46670676d
695
+ 3775a72f0000086000000573676c79667c973f3f00000dd400000f6068656164
696
+ 0f113a1e00001d3400000036686865610779fe5000001d6c00000024686d7478
697
+ 21c5034100001d90000000286c6f6361150e130e00001db8000000166d617870
698
+ 062e0f8900001dd00000002070726570d2662bf400001df000000f1800>
699
+ <058e0000054c001f054c001c0394001b0000ffe10000ffe40000ffe8fe4afffc
700
+ 056b0023fe6affe00313000000ad000000ad0000000000250096009f002400f0
701
+ 013100c200c0004a00a6004100500094004700cf00af000e007901cb00040023
702
+ 004400a80025011f0002004600170105009900d9005c007200e500e00028004b
703
+ 00de011200240045007000160039ffe90016004b0088ffb900d9000a004300ae
704
+ 00ba016c0153002f00430048022c012b0025008fffc000170028ffcdffd80025
705
+ 009d00e50124ffb10048009d00e600110027007f00910012006a00cafffc0000
706
+ 0024006200a7017c01e900210060008b0434048aff6b003b00b500d5014bff6b
707
+ 004d007905d809b5006c009100a3011701c0ffdfffe700be04010065007f0082
708
+ 0088009900b200c0022e034305a000200026003d004e00610065007b00d90113
709
+ 01310340ff27ff42ff99004e00a700f2022b02c603070011002b0049005f008d
710
+ 00a100af00d600e400f5010b0135019d01ab01ab01d101ee05d80000004b0075
711
+ 007a0080009d00a600a700ac00b9013101310217021700020017002900550080
712
+ 008f00a500b200b300d0014b015901c001c103a50530fe3fff14ff15ffe7ffff
713
+ 002a00580099009f00c100e400f40130015901ab01ab03220374041e04740532
714
+ fd81004d0064009c00d000d100d600de00e500f500f8012a012a01e1027e027f
715
+ ff57ffa8ffe500000008001f00380051005a006f0076007700a200c000c200c4
716
+ 00f101fb0209027e02cf04c5057a05f0ff92001200260042004b004f00510053
717
+ 0064008b00ae00b200b800b800d600f50111012001310138014e01520167018f
718
+ 019601b801d901d902060221027102ea03b003cb03dc04360505ff3a00120016
719
+ 001e001f002300570068006c007e0088009200a500a800c500c901150126012d
720
+ 013001d601d901f6023b0244024402a302cf02de0385038f04fc0586fee0feeb
721
+ fefbff8a0007004400470058007500aa00e400ef011601200129016a017301e3
722
+ 027e029002b4030e0310032303350341035403590388039403c803ce047204ab
723
+ 04da0549056105ab0761fe6efed1ff4bff84000000010006001e0027002c0034
724
+ 003700620066006a006b006c007000700072007c0081008a008e0091009200a0
725
+ 00ab00b800bf00c900d500dd00ec00f40100012101300169016a016d017c0185
726
+ 018e018e019901ac01c101c501c901e101f601f601f60222022202280236023f
727
+ 02430246026702850285029402d002d602e8031c0363037f03800380039e03b6
728
+ 03d90400040404ff053205320548058b05a706cb07280748076208ccfcedfd2a
729
+ fd59fddefe00fe1afe5bfe96fec1fee7ff56ff7900010025002d002e007c0087
730
+ 0091009900a100a500a500aa00af00b600c600cc00d700dd00ec00f201020105
731
+ 011701180123012a012c0131013f014701490149014d01510151015501550157
732
+ 015a015a0161016201680168017f0180018201830184018d0195019501950198
733
+ 019901a501a901b601b601b701ba01ba01d501df01e601ea01f2020002000203
734
+ 021702250227022f0239024302430247024f025202520267026f026f02700272
735
+ 0276027e02a702b302b902d603130325032d03610371039903ae03c203d403f9
736
+ 0402042c042f043c04560467048304cf04d104d804fb051f05450568059e05c2
737
+ 061b06340655066a069806af06e806fc070607500762077c07d407ff082500ad
738
+ 00c700aa00b5000000000000000000000000002f06cf01730514047802df009c
739
+ 0018037005870155002500060254036c038e03d2056601f0032001da018a0369
740
+ 036bffa3034602f8036f015602bf0122031f053a0366008c00ff01ab02e102f4
741
+ 02e70415015402e90128049101b7026f034302060000000005d30415048305e8
742
+ 000002d7003a027d01c002c503830383ffbd003a059e01df059e02d1002004e0
743
+ 021300df01c001870297000000ce0269028b0058043405fb0069015a01a90578
744
+ 0182013e0288012a03d4049e00e5032302f301f00196007a00cd014a0424025e
745
+ 023901ab00cf00fd011e00ed017100700195004001bb01dd01b8000101a803a7
746
+ 014c020c018d01b0020d0137010000cd032101d4030a00590000000001260215
747
+ 015002f0025503bc06d00335010100d000d2007a01030130007c000000000000
748
+ 000000fe006e006600940227002b0045004d00d3013200180097004100f4febc
749
+ ffe9001605d8058b009100a1032c00520030005d02cb003a009200e500e50058
750
+ 0086003200ba0099008800300298007cff8001640028004d0065000200b8016a
751
+ 002f010b001100170100007f00040016022200a6005f000000f8000a00ca0043
752
+ 004b01ee0077012000f401c00028045f0000008c044500c20060007b008b008b
753
+ 0064005d00c2009c009206b505d3004f011700000420fe9e00cc00dc005e0046
754
+ 00e30032001a003c0091005a00a1042c0041002000490071009c009cfe480040
755
+ 0040008600cb0102007d003a003e006a0050044800290096ff6a0097006900e0
756
+ 004c001b00c90069ff970043ffbd0052ff83ff8b005fffa1ff5c00670053ffa8
757
+ 002a0076ffb20036008705590256052b043400de00c901c4004800db018b00b3
758
+ 004800da01160125011800ea00ea00ae0046003e05bb008a04d70053003fff8c
759
+ ffd500150028002200990062004a00e4006d00ee00e5004803c00033fe4e02b1
760
+ ff460370007905df0051ffa7ff1f010a0068ff6c004f00bc00a5070500ab0080
761
+ 001e05a500>
762
+ <4040403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a29282726252423
763
+ 2221201f1e1d1c1b1a1918171614131211100f0e0d0c0b0a0908070605040302
764
+ 01002c4523466020b02660b004262348482d2c452346236120b02661b0042623
765
+ 48482d2c45234660b0206120b04660b004262348482d2c4523462361b0206020
766
+ b02661b02061b004262348482d2c45234660b0406120b06660b004262348482d
767
+ 2c4523462361b0406020b02661b04061b004262348482d2c0110203c003c2d2c
768
+ 20452320b0cd442320b8015a51582320b08d44235920b0ed51582320b04d4423
769
+ 5920b09051582320b00d44235921212d2c20204518684420b001602045b04676
770
+ 688a4560442d2c01b10b0a432343650a2d2c00b10a0b4323430b2d2c00b01723
771
+ 70b101173e01b0172370b10217453ab10200080d2d2c45b01a234445b0192344
772
+ 2d2c2045b00325456164b050515845441b2121592d2cb00143632362b0002342
773
+ b00f2b2d2c2045b0004360442d2c01b00643b00743650a2d2c2069b04061b000
774
+ 8b20b12cc08a8cb8100062602b0c642364615c58b00361592d2c45b0112bb017
775
+ 2344b0177ae4182d2c45b0112bb01723442d2cb01243588745b0112bb0172344
776
+ b0177ae41b038a45186920b01723448a8a8720b0a05158b0112bb0172344b017
777
+ 7ae41b21b0177ae45959182d2cb0022546608a46b040618c482d2c4b53205c58
778
+ b002855958b00185592d2c20b0032545b019234445b01a23444565234520b003
779
+ 25606a20b009234223688a6a606120b01a8ab000527921b21a1a40b9ffe0001a
780
+ 45208a54582321b03f1b235961441cb114008a5279b31940201945208a545823
781
+ 21b03f1b235961442d2cb110114323430b2d2cb10e0f4323430b2d2cb10c0d43
782
+ 23430b2d2cb10c0d432343650b2d2cb10e0f432343650b2d2cb1101143234365
783
+ 0b2d2c4b525845441b2121592d2c0120b003252349b04060b0206320b0005258
784
+ 23b002253823b002256538008a63381b212121212159012d2c4bb06451584569
785
+ b00943608a103a1b212110592d2c01b005251023208af500b0016023edec2d2c
786
+ 01b005251023208af500b0016123edec2d2c01b0062510f500edec2d2c20b001
787
+ 600110203c003c2d2c20b001610110203c003c2d2cb02b2bb02a2a2d2c00b007
788
+ 43b006430b2d2c3eb02a2a2d2c352d2c76b802b023701020b802b04520b00050
789
+ 58b00161593a2f182d2c21210c6423648bb84000622d2c21b08051580c642364
790
+ 8bb82000621bb200402f2b59b002602d2c21b0c051580c6423648bb81555621b
791
+ b200802f2b59b002602d2c0c6423648bb84000626023212d2cb4000100000015
792
+ b00826b00826b00826b008260f10161345683ab001162d2cb4000100000015b0
793
+ 0826b00826b00826b008260f1016134568653ab001162d2c4b53234b515a5820
794
+ 458a60441b2121592d2c4b545820458a60441b2121592d2c4b53234b515a5838
795
+ 1b2121592d2c4b5458381b2121592d2c014b53234b515ab00225b00425b00625
796
+ 4923451869525a58b00225b00225b00525462345696048592121212d2cb01343
797
+ 58031b02592d2cb0134358021b03592d2c4b54b012435c5a58381b2121592d2c
798
+ b012435c580cb00425b00425060c6423646164b807085158b00425b004250120
799
+ 46b01060482046b0106048590a21211b2121592d2cb012435c580cb00425b004
800
+ 25060c6423646164b807085158b00425b00425012046b8fff060482046b8fff0
801
+ 6048590a21211b2121592d2c4b53234b515a58b03a2b1b2121592d2c4b53234b
802
+ 515a58b03b2b1b2121592d2c4b53234b515ab012435c5a58381b2121592d2c0c
803
+ 8a034b54b00426024b545a8a8a0ab012435c5a58381b2121592d2c462346608a
804
+ 8a462320468a608a61b8ff8062232010238ab9035803588a70456020b0005058
805
+ b00161b8ffba8b1bb0468c59b0106068013a2d0000>
806
+ <0002010000000500050000030007004db10201bb02be0006000702bfb2000504
807
+ b802beb403000a0704b802beb5010019080605bf02be0002000301290009016b
808
+ 015e00182b10f63cfd3c4e10f43c4dfd3c003f3cfd3c10fc3cfd3c3130211121
809
+ 112521112101000400fc2003c0fc400500fb002004c0000000>
810
+ <0001003e000004b0054c001f00c9403a5a015a025a1d5a1e6b016b026b1d6b1e
811
+ 082f213f214f219805971ba805a61b0702011d1e161f1b102122091f1b0f2123
812
+ 071823001f02100f0821b802c0401309012b0040170e3f120f001f005000af00
813
+ 0400b80228b708092217161f2b1eb8ffc0400e170e3f12001e101e5f1ea01e04
814
+ 1eba0228001602c0b320645d182b10f6f45d4358b9001effc0b20b351eb8ffc0
815
+ b20b0f342b2b592be4103cfd3cf45d4358400900400b3500400b0f342b2b592b
816
+ e410e6003f3c3f3cfd3c2b2b0110c910c93130015d005d011323262726262323
817
+ 111417163333152135333237363511232207060607231304a10f260b131f6754
818
+ bf1b264f2ffdc130562416a35f28344a072610054cfec254243a37fbf47d1f2a
819
+ 2525342072040c0e136c5c013e00000000>
820
+ <0001000d000003f3058e003600fa402f38402a350a38600d5d360f250f268038
821
+ 903804b038c038d038032b0601503860387038903804403801200818291e11b8
822
+ 030f4011222d291e274a220a291e104a2321291e26b8030e402e2335272e4134
823
+ 1e35440120273600001d2c04072726261111100a19182409900a01b00a010f0a
824
+ 700a9f0acf0a040ab802bd40252d0021242e1f2d502d602d702d04802d902d02
825
+ b02d01002d102dc02dd02d042d6037a67f182b10f65d5d71723cfd3c10fd5d71
826
+ 723cfd3c003f3c103c103c3fed3f3c113939f5edfc01f52b2b2b2b3130437940
827
+ 141a1c050806251b261c05191c0107081a071d1c012b01103c2b2b2b81810171
828
+ 72005d015d712b2b011136363332161716151114171616331521353332363736
829
+ 3511342626232206071114161633152135323736363511342626232207272501
830
+ 4d6f82414e701b130e0a3040fe3e1540320a031f4430316a4a153946fe3a3d23
831
+ 14180f1f1a152f0e0112058efd627a45565c40aafebc5720181c24242726104e
832
+ 0144965e2f344ffe1c5e2e1f2424130a3856033d9d481a102370000000>
833
+ <0002003c00000207058e000b002200db4019902401602470249024a024f02405
834
+ 2024502402402450240224b8ffc0b332323424b8ffc0b3383a3424b8ffc0b32d
835
+ 303424b8ffc0b323253424b8ffc0402e191a3418291e134a220d291e124a2321
836
+ 271941201e21440c190c1390060106390000220c0713120a900901093903b8ff
837
+ c0b2433503b8ffc0400f3f35036b0c0c0d190d2418402b3918b8ffc0401a363a
838
+ 34901801501801601870189018a018f0180518b223b2a3182b10f65d71722b2b
839
+ ed3c103c10f42b2bed72003f3c3f3c3fed7211123910f5edfc01f52b2b313001
840
+ 2b2b2b2b2b015d715d0172013216151406232226353436131114161633152135
841
+ 323636351134272626232207272501292a3b3b2a2a3c3b7e193141fe43432e1b
842
+ 09071e1a1c280e0114058e3b2a2a3c3c2a2a3bfe21fd2056391c24241a3c5501
843
+ 61952c20190f247000>
844
+ <00010064ffe402d503af003103094029092c192c0212122e400b392c280b3918
845
+ 14590c5a269b109424050a070a280a29603370338033060f33b8012040870d5d
846
+ 36cb0dcb0ec424c425d723d624d92ce604e623e624e92c0b123f2c5d2c6e2d7d
847
+ 2c8f018f028f038015801a801b801c892d8f2e0d0f010f020a03090c061c0a2c
848
+ c822c923081c031614121c161d19291b2c9909990a9b20932393240b122b0d28
849
+ 2c4a2c4f335f337829782c860ea823af33e803e61c0c2908311e00bd021e011f
850
+ 012f010201b8012bb200bd2eb8011a40112a181e19bd1b1e1a1f1a01101a201a
851
+ 021ab8012bb219bd16b8011a4022121224230d0b040f2724230d0b04051e01c7
852
+ 002e2f2a31000005252a071a7e191918b803464014162f1e25120b02cc120101
853
+ 12cf21df21ef210321b80314400b700f01600f700f900f030fb801364019271a
854
+ 192e1f0801082c9f270160277027802703202730270227ba012000320120b14b
855
+ 182b4e10f45d71724ded72f43c10fd5d71fd5d4358b2ff21015d59392f435c58
856
+ b2ff01015d59ed003fede4f43c10ed3fed3c103c10e410ed1112173901111217
857
+ 394358400a242323240d0b140d0d0b870e2e2b0e7d10c459180010ecf4ed5d72
858
+ 0110edf4ed0010ecf4ed5d0110edf4ed31304379401c28291f20101106071f11
859
+ 211c010629081c0020101e1c000728051c01002b2b012b2b81818181015d4358
860
+ 4009fb07f610f611fb28045d5901720071005d435840199f019f029f039f0b9a
861
+ 0d9015901a901b901c992297239f2d0c5d595d2b017100722b2b4358400b2f23
862
+ 2f248b2c9b249b2c055d59435c584011282019390928193901400a3902400a39
863
+ 1bb8ffc0b20a391ab8ffc040190a392e400a392c400a392c4009390c101e123f
864
+ 0e201e123f0eb8fff0b21b390eb8fff0b2193924b8ffe8b2133923b8ffe8b213
865
+ 390cb8ffe8b613392c1813391bb8ffc0b212391ab8ffc0400f12390140123902
866
+ 4012392c20123924b8fff0400f0f392c180f3903100d392e400d3923b8fff040
867
+ 120d390c100d392c200d392c1811392c181139002b2b2b2b2b2b2b2b2b2b2b2b
868
+ 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b012b2b59005d011123262623220615
869
+ 1417161717161514062322272623220723113316163332363534262427263534
870
+ 36333217163332363702902126775c4656201f5f92cbbd75546c2115170d2121
871
+ 1c9e62455761fede2d2d9b7b364d331110120c03affec8936a4a2d3828292e47
872
+ 63a27d991e0a1a01478c8e5139455e903a39577198170f0e1800000000>
873
+ <00020049ffed038903af0032003d0255406f0b1c8a33021253360112201f3980
874
+ 3fa809b60a03122b127d007d3386008b0b8b35061d12163a103f803f04091c4c
875
+ 054c06452045224c3a403f891d080a0e0720002249014b0a490b49354b37433a
876
+ 493d570b670b8509840a840b0f54168316021f3f5f3f0260083300343c2e292d
877
+ 34bb011b000c000cffc0b609390c280b390cb8ffc0401a3a35100c500c02400c
878
+ 500c600c03200c500c600c760c040c3c18b8ffd840290b394f185f186f18032f
879
+ 187f1802187e1f100110251e07303c403c023c2c04702d802d022d35292c30b8
880
+ 03464011040b2ec02d012d602500330d0c0c343433bb016700240025ffc04014
881
+ 0e3900251f2580259025044025f0250280250125bb024300070015ffc0b21f39
882
+ 15b80167401e1b2f393107400e3920075007800703100701f007015007010743
883
+ 3e436e182b4e10f45d7172722b4dedf4ed2b10fd5d71722b3cfd3c103c103c10
884
+ 3c10f65d3c003ff4fde45d10ed713fed72fd5d712b11395d71722b2b2b2fed11
885
+ 123911123939313043794047353b1c23051337383638020609080a0802062122
886
+ 20220206350b392000111d131c0012130f1f0d1c0122233b05391c0038083420
887
+ 0135340b121c101c010e22101c013a063c1c002b2b2b3c103c2b012b103c2b10
888
+ 3c2b2b2a2a2a818181017201710071017172005d4358b23f12015d59015d2b00
889
+ 72435c58b431400e392eb8ffe0b210392eb8ffe0b60e3937200e3920b8ffe8b2
890
+ 0c3920b8ffe0400b0b3918200b3917200b391cb8fff0401a0b390a280b393728
891
+ 0b390a280a3937280a390a28093937280939002b2b2b2b2b2b2b2b2b2b2b2b2b
892
+ 2b2b59005d250607062322263534373636373534262322070615171406232226
893
+ 3534363332171617161511141616333237363715062322262711060706061514
894
+ 16333202478d24363d5f7b1e29cbec57533f2526022f26252fb09f7a4e3b1c12
895
+ 0a170f100c153c7066313a01972c4f4456384c846d1119826a43314478562489
896
+ 6622222c3a2e32342d5690291f422b85fec9833b14070d3c38964493015d3c19
897
+ 2c6039485f00000000>
898
+ <00010014fff1023c04c1001b00d6b9000dffe840410c395f015f02023f1d9911
899
+ 9919bf15bf16b819e819079f1d01891a014f0c4f0d5f0c5f0df5180506181518
900
+ 271803161518191a030118191a03141ba00103153004b8011b401c0103300202
901
+ 01060c35082c0f0b16cf15df15ef15031565141bcc000bb801ec402c200c010c
902
+ 2e2f1db01d021d000101040405241450130180130100131013b013c013d013e0
903
+ 130613601cab89182b10f65d71723cfd3c103c103c105df45ded10ed10f45d3c
904
+ 003ffde43f3c10ed10edfd3c10e401111739001117391239313000715d017172
905
+ 5d00722b01113315231114163332363733060623222626351123353636373637
906
+ 014ad6d63328213e11272380442e582a9137732d172904c1fed346fdae593e29
907
+ 286263335f630268211669482665000000>
908
+ <0002004cffe4035303b00014001d02434019125f185d1960006014d603051920
909
+ 1c3917201c3916401c391fb8ffc0400a434a34081f430d5d361fb8ffc0b32828
910
+ 341fb8ffc0405b2a2e341b06190958135e165f175a185b1a0701030906070908
911
+ 0c0515490689028c06870c8a10851da302ab18b513d402d90fda10f402f30313
912
+ 12000700081007100860076008700780078909c107c80ff0070c0401070d8402
913
+ 0309baffe00006ffe040433609460247094f1f54025409620272028913891999
914
+ 13a409a40ab808b509b00ac702e702e00cf40a1408d007010007d00702200790
915
+ 07a007b00704077d041400301615b8ffc040131239125f157f159f15df150415
916
+ 151bd3040104b8ffd0b2143904b8ffe8b2133904b8ffd84048123904310b0b5c
917
+ 1b011b25110707cc0816281b390f16016f167f168f160316f414148008013008
918
+ 90080230088f08df08031008400860087008b008e0080608aa0e150400890002
919
+ 00b8032c4012300e400e500e03000e100e200e03f00e010eb8ffc04009434a34
920
+ 0e431e434b182b4e10f42b7172724dfd713c10fd5d715d713c10ed5d712b10ed
921
+ 003fed723fed2b2b2b7211392f5d4358b26f15015d592b3cfd3c10f45d717239
922
+ 3130015d00383800715d014358b40600010202715971722b2b2b2b2b2b2b0072
923
+ 435c58b90007ffc0400b23390c402d390d402d3908b8ffc0b2283907b8ffc0b2
924
+ 283906b8ffc0b21b3907b8ffc0b21b3908b8ffc0b21b3907b8ffc0b20a3908b8
925
+ ffc0b20a3907b8ffc0b2093908b8ffc0400e093915101939192011390d201139
926
+ 002b2b012b002b2b2b2b2b2b2b2b2b2b2b2b5913061716333236371706062322
927
+ 0235341233321615252126272626232206da016464875a852d1f15ca98a5ebf1
928
+ b69ac6fd8701a805101963365383023bcc747463781489e10101d9eb0107cbaa
929
+ 3a5824384081000000>
930
+ <00010091ffe4016f00c2000b002b401c0040060b034009403a3509403f355f09
931
+ 019f09af090209850c6a7a182b10f671722b2bed003fed313025321615140623
932
+ 222635343601002f40412e2e4141c2412e2e41412e2f400000>
933
+ <000100000002d1ec623652885f0f3cf50819080000000000a2e31dc200000000
934
+ 000000000000ffe40500058e00000009000100000000000000>
935
+ <000100000721fe45005700000000000000000001000000000000000000000000
936
+ 0000000a00>
937
+ <0639011c04e3003e0400000d0239003c031d006402000000038d004902390014
938
+ 038d004c0200009100>
939
+ <0000003c00d401a202460414041405980630078407b0000000>
940
+ <00010000000a003e00020000000000020010002f0041000005cd0f180003000200>
941
+ <b9ffc003e1b345453240b803e1b32b2e3240b803e1b2282932b9ffc003e1b21a
942
+ 1c32bd03e102ac0027001fffc003dfb2161b32b9ffc003deb2424232b9ffc003
943
+ deb2363832b9ffc003deb32a2d32df410a03de00ef03de000203de03df002800
944
+ 1fffc003dfb3282e32f0410d03df0001037e000f0101001f00a003dd00b003dd
945
+ 0002004003dab32426329fbf03cc000103ca03c90064001fffc003c9b20d1132
946
+ 410a03c703b70012001f03b603b50064001fffc003b5b30e1132004173038d00
947
+ 0100c0038d00d0038d00e0038d00f0038d0004006f03a7007f03a7008f03a700
948
+ af03a70004000f03a7001f03a7002f03a7004f03a7000403ab03ab00ef03a500
949
+ 01000f03a5002f03a5006f03a5008f03a50004005403aa0001006b03aa000103
950
+ a8036a0022001f038c03940015001f038b03930015001f03a40393001a001f03
951
+ a20394001e001f03a10393001e001f039f0394001e001f039b0394001a001f03
952
+ 9a0393001e001f039903940016001f039803940016001f03970393001b001f03
953
+ 960394001b001f03950393001b001f03760375001a001f03740375001a001f03
954
+ a00373b21e1f10411e0393002003930030039300030020039400300394004003
955
+ 9400030000039400010383036c001e001f03b1036c0032001f036d036c003200
956
+ 1fffc0037db2212332b9ffc0037db3171932a0410a037d00b0037d00c0037d00
957
+ d0037d0004ffc0037cb2212332b9ffc0037cb3171932a0412d037c00b0037c00
958
+ c0037c00d0037c00040030037300400373000200000373001003730020037300
959
+ 0300e0037300f00373000200b0037300c0037300d00373000300840373009003
960
+ 7300a0037300030377036a0029001f0389036ab2281f40b80367b33940323fbb
961
+ 0366000100400366b3191d328fbb0366000100400366b3090a3240b80366b309
962
+ 0e3240b80366b3090f323fbb0365000100400365b3090c3240b80365b31a1d32
963
+ 40b80365b3090e326b410e0363007b0363000200140363002403630034036300
964
+ 44036300040363b2242f1fba034e006d0800400e1f7f027f037f047f05043044
965
+ 0112bf033200500800001f0012032d003c080040291f5f3c0137600970098009
966
+ 0310092009300940095009056f037f038f03031f032f033f034f035f0305b8ff
967
+ c0b2073a33b8ffc04047063a33900ba00bb00bc00bd00b05b006c006d006e006
968
+ f0060520063006400650066006700680069006a006099006900702600b700b80
969
+ 0b03100b200b300b400b500b051f0701a0418503620001000003620010036200
970
+ 70036200900362000400f0035f00010020035e0020035f0030035f0040035e00
971
+ 040000035e0000035f0010035f00d0035e00e0035f00050010030f0020030f00
972
+ 30030f00d0030f00e0030f00050000030f0010030f0050030f0060030f007003
973
+ 0f00d0030f00060000030f0010030f0020030f0030030f00e0030f00f0030f00
974
+ 06030f00270000030e0030030e000200e0030e00f0030e0002030e004a00e003
975
+ 0d00f0030d0002030d002700d002fc0001001002fc002002fc005002fc000300
976
+ d002fc00e002fc0002000002fc001002fc002002fc003002fc005002fc006002
977
+ fc000600e002fc00f002fc0002002002fc003002fc004002fc000302fc406127
978
+ c02901b02901a02901902901403c3f413240223f41321212125f235f255f285f
979
+ a5046f236f256f286fa5044f234f254f284fa5043f233f253f283fa5042f232f
980
+ 252f282fa5041f231f251f281fa5048f4caf4cbf4ccf4c045f4c6f4c7f4c0337
981
+ b8ffc0b3b22b3032b8ffc0b3b2222532b8ffc0b5b2191a32370f413d02af0001
982
+ 005f02af009f02af00df02af0003000f02af001f02af002f02af003f02af006f
983
+ 02af000502af02af001f02ad002f02ad003f02ad004f02ad005f02ad000500df
984
+ 02ad0001000f02ad001f02ad003f02ad005f02ad009f02ad0005005f02ad00df
985
+ 02ad0002000f02ad001f02ad003f02ad0003004002acb23a334f414c02ac005f
986
+ 02ac009f02ac0003002f02ac003f02ac0002000f02ac003f02ac00af02ac0003
987
+ 00b002ac00e002ac0002004f02ac005f02ac00a002ac0003000f02ac001f02ac
988
+ 002f02ac003f02ac0004000f035a0001000f035a001f035a003f035a005f035a
989
+ 0070035a000500cf035700df03570002000f0357001f03570070035700af0357
990
+ 0004035a035a0357035702ad02ad02ac02ac032c400d31151f00161600000012
991
+ 1108104110020c004a000d01a8004a000d0198004a000d0189004a000d013f00
992
+ 4a000d0124400e4a0df64a0dbe4a0d864a0d274a0dbe02280041000d01940041
993
+ 000d0121400b410db4410d4f410d29410d411002170021000d02150021000d02
994
+ 060021000d01eb0021000d014e0021000d012c4014210df9210df3210df1210d
995
+ 9d210d71210d3d210d4110021c001f000d0214001f000d020b001f000d019600
996
+ 1f000d014a001f000d0126400b1f0dc61f0d571f0d371f0d410d019e0141000d
997
+ 00420141000d001e0141000d001b0141000d01f2b40f440f0009bb01f2004400
998
+ 0d0201b23c291fb80200b23c291fb801ffb23c411fb801feb23c471fb801fdb2
999
+ 3c9e1fb801fab23c931fbc01f9010f0101001f01f6b224e41f411501f4014904
1000
+ 01001f01f301490401001f01f1014900ab001f01f001490067001f01a6003c01
1001
+ 25001f01a4b23c811f411501a3010f019a001f01a200220801001f01a1005004
1002
+ 01001f019f0149019a001f019d01490067001f019cb22c621fb8019bb22c791f
1003
+ bc019a002c0101001f0197b22ce41fb80193b22c891fb80192b22c6c1fb8018f
1004
+ b2259e1fb8016ab23c2a1f4111016700240201001f0163002502ab001f014c01
1005
+ 0f019a001f01480149006c001f0147b22c891fb80145b22c9e1fb80144b22c79
1006
+ 1fb80143b223311fb80127b23c811fbc012300500101001f011fb223e41f4115
1007
+ 011d0023019a001f011c00230801001f011b00250801001f010e010f0401001f
1008
+ 010d00220401001f0108b223811fb80106b425e41ff73cbb0125001f00f5010f
1009
+ b29e1fe3bc01490156001f00e20149b2ab1fd1b901490401b21fcf2cb80125b6
1010
+ 1fce23bb1fc524b80156b21fc02cb80801b21fbf2cb80201b51fb124e41fb0b9
1011
+ 01490201b61faf2c671fad23b80801b21fa523b80201400b1f9f3c2d1f9b235a
1012
+ 1f9925b80201b21f812cbc0401001f006d010f0156400b1f592c3e1f4c3cab1f
1013
+ 4625b80101b21f403cb80125400a1f3a23721f393cab1f38b80149b3ab1f3124
1014
+ b80401b21f3025b802abb61f2a24e41f2623b80156b21f5537ba023500070175
1015
+ 402c0774076207560751073b0733072d0720071d071c071408120810080e080c
1016
+ 080a080808060804080208000814b8ffe0402b00000100140610000001000604
1017
+ 000001000410000001001002000001000200000001000002010802004a00b013
1018
+ 034b024b534201b0124b004b5442b0372b4bb807ff52b0382b4bb008505b58b1
1019
+ 01018e59b0382bb00288b801005458b801ffb101018e851bb0124358b9000101
1020
+ 2f858d1bb90001017c858d5959014bb0c063004b6220b0f65323b8010a515ab0
1021
+ 052342180016763f183f123e113946443e113946443e113946443e113946443e
1022
+ 11394660443e11394660442b2b2b2b2b2b2b2b2b2b2b182b2b2b2b2b2b2b2b2b
1023
+ 2b2b2b2b181db0964b5358b0aa1d59b0324b5358b0ff1d594bb04753205c58b9
1024
+ 0271026f4544b90270026f45445958b9017a0271455258b90271017a4459594b
1025
+ b04753205c58b9002202704544b9003c027045445958b901b30022455258b900
1026
+ 2201b34459594bb04c53205c58b9014900224544b1222245445958b901c20149
1027
+ 455258b9014901c24459594bb06753205c58b9002402714544b9005002714544
1028
+ 5958b9021e0024455258b90024021e4459594bb8020153205c58b9010f002245
1029
+ 44b1222245445958b90c00010f455258b9010f0c004459594bb01c53205c58b1
1030
+ 25254544b12c2545445958b13725455258b125374459594bb0ab53205c58b125
1031
+ 254544b1232545445958b901590025455258b9002501594459594bb801015320
1032
+ 5c58b125254544b1282545445958b902080025455258b9002502084459592b2b
1033
+ 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
1034
+ 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
1035
+ 2b2b2b2b2b2b2b2b2b2b2b65422b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
1036
+ 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b01b361dc64634565
1037
+ 23456023456560234560b08b766818b080622020b164dc4565234520b0032660
1038
+ 62636820b003266165b0dc236544b064234420b161634565234520b003266062
1039
+ 636820b003266165b063236544b0612344b10063455458b163406544b2614061
1040
+ 4523614459b3a67f434b456523456023456560234560b089766818b080622020
1041
+ b1437f4565234520b003266062636820b003266165b07f236544b043234420b1
1042
+ a64b4565234520b003266062636820b003266165b04b236544b0a62344b1004b
1043
+ 455458b14b406544b2a640a645236144594b5242014b5058b108004259435c58
1044
+ b108004259b3020b0a124358601b2159421610703eb0124358b93b21187e1bba
1045
+ 040001a8000b2b59b00c2342b00d2342b0124358b92d412d411bba0400040000
1046
+ 0b2b59b00e2342b00f2342b0124358b9187e3b211bba01a80400000b2b59b010
1047
+ 2342b0112342002b001845694445694445694445694473737374737373747575
1048
+ 2b7373747475184569447373742b4bb021534bb046515a58b03cb03c45b04060
1049
+ 4459012b2b2b2b757575757575757543584010bf3ccf3c026f3c7f3c8f3c9f3c
1050
+ af3c0575755943584012bf22cf22025f226f227f228f229f22af220675755943
1051
+ 5c58b6403c9f22ef220375592b2b017474747445447373747475754544734544
1052
+ 73744544737475737373737300757575737575752b2b757575752b752b435841
1053
+ 220063032d00010003032d0013032d0023032d0033032d0053032d000500c303
1054
+ 2d00d3032d00e3032d00f3032d00040083032d0093032d00a3032d00b3032d00
1055
+ 04032d032d4518694474747575592b4358b900180332b330353238b80332b361
1056
+ 663238b80332b3535a3238b80332b3454e3238b80332b33c413218b80332b23f
1057
+ 330a410f0332000100ba033200ca033200da033200ea033200fa033200050332
1058
+ 03324518694474752b2b2b2b2b2b597300732b012b7575002b2b2b74002b2b2b
1059
+ 732b74012b002b2b017373737474732b2b00732b2b002b2b2b017374732b012b
1060
+ 2b012b2b2b2b2b2b2b2b2b2b2b2b2b2b00017375007373004569440073730173
1061
+ 742b2b2b2b2b732b00732b752b2b732b2b2b2b2b2b2b2b2b00>
1062
+ ] def
1063
+ FontName currentdict end definefont pop
1064
+ %%EndResource
1065
+ /F9_0 /BAAAAA+TimesNewRomanPSMT 1 1
1066
+ [ /c00/c01/c02/c03/c04/c05/c06/c07
1067
+ /c08/c09/c0a/c0b/c0c/c0d/c0e/c0f
1068
+ /c10/c11/c12/c13/c14/c15/c16/c17
1069
+ /c18/c19/c1a/c1b/c1c/c1d/c1e/c1f
1070
+ /c20/c21/c22/c23/c24/c25/c26/c27
1071
+ /c28/c29/c2a/c2b/c2c/c2d/c2e/c2f
1072
+ /c30/c31/c32/c33/c34/c35/c36/c37
1073
+ /c38/c39/c3a/c3b/c3c/c3d/c3e/c3f
1074
+ /c40/c41/c42/c43/c44/c45/c46/c47
1075
+ /c48/c49/c4a/c4b/c4c/c4d/c4e/c4f
1076
+ /c50/c51/c52/c53/c54/c55/c56/c57
1077
+ /c58/c59/c5a/c5b/c5c/c5d/c5e/c5f
1078
+ /c60/c61/c62/c63/c64/c65/c66/c67
1079
+ /c68/c69/c6a/c6b/c6c/c6d/c6e/c6f
1080
+ /c70/c71/c72/c73/c74/c75/c76/c77
1081
+ /c78/c79/c7a/c7b/c7c/c7d/c7e/c7f
1082
+ /c80/c81/c82/c83/c84/c85/c86/c87
1083
+ /c88/c89/c8a/c8b/c8c/c8d/c8e/c8f
1084
+ /c90/c91/c92/c93/c94/c95/c96/c97
1085
+ /c98/c99/c9a/c9b/c9c/c9d/c9e/c9f
1086
+ /ca0/ca1/ca2/ca3/ca4/ca5/ca6/ca7
1087
+ /ca8/ca9/caa/cab/cac/cad/cae/caf
1088
+ /cb0/cb1/cb2/cb3/cb4/cb5/cb6/cb7
1089
+ /cb8/cb9/cba/cbb/cbc/cbd/cbe/cbf
1090
+ /cc0/cc1/cc2/cc3/cc4/cc5/cc6/cc7
1091
+ /cc8/cc9/cca/ccb/ccc/ccd/cce/ccf
1092
+ /cd0/cd1/cd2/cd3/cd4/cd5/cd6/cd7
1093
+ /cd8/cd9/cda/cdb/cdc/cdd/cde/cdf
1094
+ /ce0/ce1/ce2/ce3/ce4/ce5/ce6/ce7
1095
+ /ce8/ce9/cea/ceb/cec/ced/cee/cef
1096
+ /cf0/cf1/cf2/cf3/cf4/cf5/cf6/cf7
1097
+ /cf8/cf9/cfa/cfb/cfc/cfd/cfe/cff]
1098
+ pdfMakeFont
1099
+ 612 792 false pdfSetup
1100
+ %%EndSetup
1101
+ %%Page: 1 1
1102
+ %%BeginPageSetup
1103
+ %%PageOrientation: Portrait
1104
+ pdfStartPage
1105
+ 0 0 612 792 re W
1106
+ %%EndPageSetup
1107
+ [] 0 d
1108
+ 1 i
1109
+ 0 j
1110
+ 0 J
1111
+ 10 M
1112
+ 1 w
1113
+ /DeviceGray {} cs
1114
+ [0] sc
1115
+ /DeviceGray {} CS
1116
+ [0] SC
1117
+ false op
1118
+ false OP
1119
+ {} settransfer
1120
+ q
1121
+ 0.1 w
1122
+ q
1123
+ 0 -0.1 612.1 792.1 re
1124
+ W*
1125
+ q
1126
+ /DeviceRGB {} cs
1127
+ [0 0 0] sc
1128
+ [1 0 0 1 0 0] Tm
1129
+ 0 0 Td
1130
+ 56.8 724.1 Td
1131
+ /F9_0 12 Tf
1132
+ (\001) 7.32 Tj
1133
+ 2 TJm
1134
+ (\002\003) 9.324 Tj
1135
+ 2 TJm
1136
+ (\004) 4.668 Tj
1137
+ -10 TJm
1138
+ (\005\003) 6.324 Tj
1139
+ 2 TJm
1140
+ (\004) 4.668 Tj
1141
+ -2 TJm
1142
+ (\005\006) 8.316 Tj
1143
+ 1 TJm
1144
+ (\005\007) 6.324 Tj
1145
+ 2 TJm
1146
+ (\010) 5.316 Tj
1147
+ 1 TJm
1148
+ (\004) 4.668 Tj
1149
+ -2 TJm
1150
+ (\007) 3.324 Tj
1151
+ 2 TJm
1152
+ (\011) 3 Tj
1153
+ Q
1154
+ Q
1155
+ Q
1156
+ showpage
1157
+ %%PageTrailer
1158
+ pdfEndPage
1159
+ %%Trailer
1160
+ end
1161
+ %%DocumentSuppliedResources:
1162
+ %%+ font BAAAAA+TimesNewRomanPSMT
1163
+ %%EOF
@@ -12,10 +12,18 @@ class TestRocrad < Test::Unit::TestCase
12
12
  f = File.open(@jpg.to_s, "r")
13
13
  @chars = f.chars.to_a
14
14
  f.close
15
- @txt_jpg = ["3", "R", "8", "Z".downcase].*""
15
+ @txt_jpg = ["3", "R", "8", "Z".downcase].* ""
16
16
  @txt_tif = "43ZZ".downcase
17
- @txt_png = ["H", "W", "9", "W".downcase].*""
18
- @txt_bmp = ["Z".downcase, "L", "A", "6"].*""
17
+ @txt_png = ["H", "W", "9", "W".downcase].* ""
18
+ @txt_bmp = ["Z".downcase, "L", "A", "6"].* ""
19
+ end
20
+
21
+ def test_pdf
22
+ assert Rocrad.new(@path.join("images", "test.pdf")).to_s.include?("This is a test.")
23
+ end
24
+
25
+ def test_ps
26
+ assert Rocrad.new(@path.join("images", "test.ps")).to_s.include?("This is a test.")
19
27
  end
20
28
 
21
29
  def test_convert_via_http
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocrad
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ludwig Bratke
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-29 00:00:00 +02:00
18
+ date: 2011-06-27 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -174,7 +174,9 @@ files:
174
174
  - test/images/test.bmp
175
175
  - test/images/test.foo
176
176
  - test/images/test.jpg
177
+ - test/images/test.pdf
177
178
  - test/images/test.png
179
+ - test/images/test.ps
178
180
  - test/images/test.tif
179
181
  - test/images/test1.tif
180
182
  - test/test_binary.rb