combine_pdf 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,69 @@
1
+ module CombinePDF
2
+ class PDFWriter < Hash
3
+ METRICS_DICTIONARY = {
4
+ :"Times-Roman" => TIMES_ROMAN_METRICS,
5
+ :"Times-Bold" => TIMES_BOLD_METRICS,
6
+ :"Times-Italic" => TIMES_ITALIC_METRICS,
7
+ :"Times-BoldItalic" => TIMES_BOLDITALIC_METRICS,
8
+ :Helvetica => HELVETICA_METRICS,
9
+ :"Helvetica-Bold" => HELVETICA_BOLD_METRICS,
10
+ :"Helvetica-BoldOblique"=> HELVETICA_BOLDOBLIQUE_METRICS,
11
+ :"Helvetica-Oblique" => HELVETICA_OBLIQUE_METRICS,
12
+ :Courier => COURIER_METRICS,
13
+ :"Courier-Bold" => COURIER_BOLD_METRICS,
14
+ :"Courier-Oblique" => COURIER_OBLIQUE_METRICS,
15
+ :"Courier-BoldOblique" => COURIER_BOLDOBLIQUE_METRICS,
16
+ :Symbol => SYMBOL_METRICS,
17
+ :ZapfDingbats => ZAPFDINGBATS_METRICS
18
+ }
19
+ def self.get_metrics(font_name)
20
+ METRICS_DICTIONARY[font_name]
21
+ end
22
+
23
+ # This function calculates the dimentions of a string in a PDF.
24
+ #
25
+ # UNICODE SUPPORT IS MISSING!
26
+ #
27
+ # text:: String containing the text for which the demantion box will be calculated.
28
+ # font_name:: the font name, from the 14 fonts possible. @see font
29
+ # size:: the size of the text, as it will be applied in the PDF.
30
+ def dimentions_of(text, font_name, size = 1000)
31
+ metrics = METRICS_DICTIONARY[font_name]
32
+ metrics_array = []
33
+ # the following is only good for latin text - unicode support is missing!!!!
34
+ text.each_char{|c| metrics_array << (metrics.select {|k,v| v[:charcode] == c.bytes[0].ord}).to_a[0][1] }
35
+ max_width = metrics_array.map {|m| m ? m[:wx] : 0} .max
36
+ height = metrics_array.map {|m| m ? m[:boundingbox][3] : 0} .max
37
+ height = height - (metrics_array.map {|m| m ? m[:boundingbox][1] : 0} ).min
38
+ width = 0.0
39
+ metrics_array.each do |m|
40
+ if m
41
+ width += m[:wx]
42
+ else
43
+ width += max_width
44
+ end
45
+ end
46
+ [width.to_f/1000*size, height.to_f/1000*size]
47
+ end
48
+ # this method returns the size for which the text fits the requested metrices
49
+ # the size is type Float and is rather exact
50
+ # if the text cannot fit such a small place, returns zero (0).
51
+ # maximum font size possible is set to 100,000 - which should be big enough for anything
52
+ # text:: the text to fit
53
+ # font:: the font name. @see font
54
+ # length:: the length to fit
55
+ # height:: the height to fit (optional - normally length is the issue)
56
+ def fit_text(text, font, length, height = 10000000)
57
+ size = 100000
58
+ size_array = [size]
59
+ metrics = dimentions_of text, font, size
60
+ if metrics[0] > length
61
+ size_array << size * length/metrics[0]
62
+ end
63
+ if metrics[1] > height
64
+ size_array << size * height/metrics[1]
65
+ end
66
+ size_array.min
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,1336 @@
1
+ module CombinePDF
2
+ class PDFWriter < Hash
3
+ # with thanks to Jan Krutisch, the creator of the afm gem.
4
+ SYMBOL_METRICS =
5
+ {"space"=>{:charcode=>32,
6
+ :wx=>250,
7
+ :name=>"space",
8
+ :boundingbox=>[0,
9
+ 0,
10
+ 0,
11
+ 0]},
12
+ "exclam"=>{:charcode=>33,
13
+ :wx=>333,
14
+ :name=>"exclam",
15
+ :boundingbox=>[128,
16
+ -17,
17
+ 240,
18
+ 672]},
19
+ "universal"=>{:charcode=>34,
20
+ :wx=>713,
21
+ :name=>"universal",
22
+ :boundingbox=>[31,
23
+ 0,
24
+ 681,
25
+ 705]},
26
+ "numbersign"=>{:charcode=>35,
27
+ :wx=>500,
28
+ :name=>"numbersign",
29
+ :boundingbox=>[20,
30
+ -16,
31
+ 481,
32
+ 673]},
33
+ "existential"=>{:charcode=>36,
34
+ :wx=>549,
35
+ :name=>"existential",
36
+ :boundingbox=>[25,
37
+ 0,
38
+ 478,
39
+ 707]},
40
+ "percent"=>{:charcode=>37,
41
+ :wx=>833,
42
+ :name=>"percent",
43
+ :boundingbox=>[63,
44
+ -36,
45
+ 771,
46
+ 655]},
47
+ "ampersand"=>{:charcode=>38,
48
+ :wx=>778,
49
+ :name=>"ampersand",
50
+ :boundingbox=>[41,
51
+ -18,
52
+ 750,
53
+ 661]},
54
+ "suchthat"=>{:charcode=>39,
55
+ :wx=>439,
56
+ :name=>"suchthat",
57
+ :boundingbox=>[48,
58
+ -17,
59
+ 414,
60
+ 500]},
61
+ "parenleft"=>{:charcode=>40,
62
+ :wx=>333,
63
+ :name=>"parenleft",
64
+ :boundingbox=>[53,
65
+ -191,
66
+ 300,
67
+ 673]},
68
+ "parenright"=>{:charcode=>41,
69
+ :wx=>333,
70
+ :name=>"parenright",
71
+ :boundingbox=>[30,
72
+ -191,
73
+ 277,
74
+ 673]},
75
+ "asteriskmath"=>{:charcode=>42,
76
+ :wx=>500,
77
+ :name=>"asteriskmath",
78
+ :boundingbox=>[65,
79
+ 134,
80
+ 427,
81
+ 551]},
82
+ "plus"=>{:charcode=>43,
83
+ :wx=>549,
84
+ :name=>"plus",
85
+ :boundingbox=>[10,
86
+ 0,
87
+ 539,
88
+ 533]},
89
+ "comma"=>{:charcode=>44,
90
+ :wx=>250,
91
+ :name=>"comma",
92
+ :boundingbox=>[56,
93
+ -152,
94
+ 194,
95
+ 104]},
96
+ "minus"=>{:charcode=>45,
97
+ :wx=>549,
98
+ :name=>"minus",
99
+ :boundingbox=>[11,
100
+ 233,
101
+ 535,
102
+ 288]},
103
+ "period"=>{:charcode=>46,
104
+ :wx=>250,
105
+ :name=>"period",
106
+ :boundingbox=>[69,
107
+ -17,
108
+ 181,
109
+ 95]},
110
+ "slash"=>{:charcode=>47,
111
+ :wx=>278,
112
+ :name=>"slash",
113
+ :boundingbox=>[0,
114
+ -18,
115
+ 254,
116
+ 646]},
117
+ "zero"=>{:charcode=>48,
118
+ :wx=>500,
119
+ :name=>"zero",
120
+ :boundingbox=>[24,
121
+ -14,
122
+ 476,
123
+ 685]},
124
+ "one"=>{:charcode=>49,
125
+ :wx=>500,
126
+ :name=>"one",
127
+ :boundingbox=>[117,
128
+ 0,
129
+ 390,
130
+ 673]},
131
+ "two"=>{:charcode=>50,
132
+ :wx=>500,
133
+ :name=>"two",
134
+ :boundingbox=>[25,
135
+ 0,
136
+ 475,
137
+ 685]},
138
+ "three"=>{:charcode=>51,
139
+ :wx=>500,
140
+ :name=>"three",
141
+ :boundingbox=>[43,
142
+ -14,
143
+ 435,
144
+ 685]},
145
+ "four"=>{:charcode=>52,
146
+ :wx=>500,
147
+ :name=>"four",
148
+ :boundingbox=>[15,
149
+ 0,
150
+ 469,
151
+ 685]},
152
+ "five"=>{:charcode=>53,
153
+ :wx=>500,
154
+ :name=>"five",
155
+ :boundingbox=>[32,
156
+ -14,
157
+ 445,
158
+ 690]},
159
+ "six"=>{:charcode=>54,
160
+ :wx=>500,
161
+ :name=>"six",
162
+ :boundingbox=>[34,
163
+ -14,
164
+ 468,
165
+ 685]},
166
+ "seven"=>{:charcode=>55,
167
+ :wx=>500,
168
+ :name=>"seven",
169
+ :boundingbox=>[24,
170
+ -16,
171
+ 448,
172
+ 673]},
173
+ "eight"=>{:charcode=>56,
174
+ :wx=>500,
175
+ :name=>"eight",
176
+ :boundingbox=>[56,
177
+ -14,
178
+ 445,
179
+ 685]},
180
+ "nine"=>{:charcode=>57,
181
+ :wx=>500,
182
+ :name=>"nine",
183
+ :boundingbox=>[30,
184
+ -18,
185
+ 459,
186
+ 685]},
187
+ "colon"=>{:charcode=>58,
188
+ :wx=>278,
189
+ :name=>"colon",
190
+ :boundingbox=>[81,
191
+ -17,
192
+ 193,
193
+ 460]},
194
+ "semicolon"=>{:charcode=>59,
195
+ :wx=>278,
196
+ :name=>"semicolon",
197
+ :boundingbox=>[83,
198
+ -152,
199
+ 221,
200
+ 460]},
201
+ "less"=>{:charcode=>60,
202
+ :wx=>549,
203
+ :name=>"less",
204
+ :boundingbox=>[26,
205
+ 0,
206
+ 523,
207
+ 522]},
208
+ "equal"=>{:charcode=>61,
209
+ :wx=>549,
210
+ :name=>"equal",
211
+ :boundingbox=>[11,
212
+ 141,
213
+ 537,
214
+ 390]},
215
+ "greater"=>{:charcode=>62,
216
+ :wx=>549,
217
+ :name=>"greater",
218
+ :boundingbox=>[26,
219
+ 0,
220
+ 523,
221
+ 522]},
222
+ "question"=>{:charcode=>63,
223
+ :wx=>444,
224
+ :name=>"question",
225
+ :boundingbox=>[70,
226
+ -17,
227
+ 412,
228
+ 686]},
229
+ "congruent"=>{:charcode=>64,
230
+ :wx=>549,
231
+ :name=>"congruent",
232
+ :boundingbox=>[11,
233
+ 0,
234
+ 537,
235
+ 475]},
236
+ "Alpha"=>{:charcode=>65,
237
+ :wx=>722,
238
+ :name=>"Alpha",
239
+ :boundingbox=>[4,
240
+ 0,
241
+ 684,
242
+ 673]},
243
+ "Beta"=>{:charcode=>66,
244
+ :wx=>667,
245
+ :name=>"Beta",
246
+ :boundingbox=>[29,
247
+ 0,
248
+ 592,
249
+ 673]},
250
+ "Chi"=>{:charcode=>67,
251
+ :wx=>722,
252
+ :name=>"Chi",
253
+ :boundingbox=>[-9,
254
+ 0,
255
+ 704,
256
+ 673]},
257
+ "Delta"=>{:charcode=>68,
258
+ :wx=>612,
259
+ :name=>"Delta",
260
+ :boundingbox=>[6,
261
+ 0,
262
+ 608,
263
+ 688]},
264
+ "Epsilon"=>{:charcode=>69,
265
+ :wx=>611,
266
+ :name=>"Epsilon",
267
+ :boundingbox=>[32,
268
+ 0,
269
+ 617,
270
+ 673]},
271
+ "Phi"=>{:charcode=>70,
272
+ :wx=>763,
273
+ :name=>"Phi",
274
+ :boundingbox=>[26,
275
+ 0,
276
+ 741,
277
+ 673]},
278
+ "Gamma"=>{:charcode=>71,
279
+ :wx=>603,
280
+ :name=>"Gamma",
281
+ :boundingbox=>[24,
282
+ 0,
283
+ 609,
284
+ 673]},
285
+ "Eta"=>{:charcode=>72,
286
+ :wx=>722,
287
+ :name=>"Eta",
288
+ :boundingbox=>[39,
289
+ 0,
290
+ 729,
291
+ 673]},
292
+ "Iota"=>{:charcode=>73,
293
+ :wx=>333,
294
+ :name=>"Iota",
295
+ :boundingbox=>[32,
296
+ 0,
297
+ 316,
298
+ 673]},
299
+ "theta1"=>{:charcode=>74,
300
+ :wx=>631,
301
+ :name=>"theta1",
302
+ :boundingbox=>[18,
303
+ -18,
304
+ 623,
305
+ 689]},
306
+ "Kappa"=>{:charcode=>75,
307
+ :wx=>722,
308
+ :name=>"Kappa",
309
+ :boundingbox=>[35,
310
+ 0,
311
+ 722,
312
+ 673]},
313
+ "Lambda"=>{:charcode=>76,
314
+ :wx=>686,
315
+ :name=>"Lambda",
316
+ :boundingbox=>[6,
317
+ 0,
318
+ 680,
319
+ 688]},
320
+ "Mu"=>{:charcode=>77,
321
+ :wx=>889,
322
+ :name=>"Mu",
323
+ :boundingbox=>[28,
324
+ 0,
325
+ 887,
326
+ 673]},
327
+ "Nu"=>{:charcode=>78,
328
+ :wx=>722,
329
+ :name=>"Nu",
330
+ :boundingbox=>[29,
331
+ -8,
332
+ 720,
333
+ 673]},
334
+ "Omicron"=>{:charcode=>79,
335
+ :wx=>722,
336
+ :name=>"Omicron",
337
+ :boundingbox=>[41,
338
+ -17,
339
+ 715,
340
+ 685]},
341
+ "Pi"=>{:charcode=>80,
342
+ :wx=>768,
343
+ :name=>"Pi",
344
+ :boundingbox=>[25,
345
+ 0,
346
+ 745,
347
+ 673]},
348
+ "Theta"=>{:charcode=>81,
349
+ :wx=>741,
350
+ :name=>"Theta",
351
+ :boundingbox=>[41,
352
+ -17,
353
+ 715,
354
+ 685]},
355
+ "Rho"=>{:charcode=>82,
356
+ :wx=>556,
357
+ :name=>"Rho",
358
+ :boundingbox=>[28,
359
+ 0,
360
+ 563,
361
+ 673]},
362
+ "Sigma"=>{:charcode=>83,
363
+ :wx=>592,
364
+ :name=>"Sigma",
365
+ :boundingbox=>[5,
366
+ 0,
367
+ 589,
368
+ 673]},
369
+ "Tau"=>{:charcode=>84,
370
+ :wx=>611,
371
+ :name=>"Tau",
372
+ :boundingbox=>[33,
373
+ 0,
374
+ 607,
375
+ 673]},
376
+ "Upsilon"=>{:charcode=>85,
377
+ :wx=>690,
378
+ :name=>"Upsilon",
379
+ :boundingbox=>[-8,
380
+ 0,
381
+ 694,
382
+ 673]},
383
+ "sigma1"=>{:charcode=>86,
384
+ :wx=>439,
385
+ :name=>"sigma1",
386
+ :boundingbox=>[40,
387
+ -233,
388
+ 436,
389
+ 500]},
390
+ "Omega"=>{:charcode=>87,
391
+ :wx=>768,
392
+ :name=>"Omega",
393
+ :boundingbox=>[34,
394
+ 0,
395
+ 736,
396
+ 688]},
397
+ "Xi"=>{:charcode=>88,
398
+ :wx=>645,
399
+ :name=>"Xi",
400
+ :boundingbox=>[40,
401
+ 0,
402
+ 599,
403
+ 673]},
404
+ "Psi"=>{:charcode=>89,
405
+ :wx=>795,
406
+ :name=>"Psi",
407
+ :boundingbox=>[15,
408
+ 0,
409
+ 781,
410
+ 684]},
411
+ "Zeta"=>{:charcode=>90,
412
+ :wx=>611,
413
+ :name=>"Zeta",
414
+ :boundingbox=>[44,
415
+ 0,
416
+ 636,
417
+ 673]},
418
+ "bracketleft"=>{:charcode=>91,
419
+ :wx=>333,
420
+ :name=>"bracketleft",
421
+ :boundingbox=>[86,
422
+ -155,
423
+ 299,
424
+ 674]},
425
+ "therefore"=>{:charcode=>92,
426
+ :wx=>863,
427
+ :name=>"therefore",
428
+ :boundingbox=>[163,
429
+ 0,
430
+ 701,
431
+ 487]},
432
+ "bracketright"=>{:charcode=>93,
433
+ :wx=>333,
434
+ :name=>"bracketright",
435
+ :boundingbox=>[33,
436
+ -155,
437
+ 246,
438
+ 674]},
439
+ "perpendicular"=>{:charcode=>94,
440
+ :wx=>658,
441
+ :name=>"perpendicular",
442
+ :boundingbox=>[15,
443
+ 0,
444
+ 652,
445
+ 674]},
446
+ "underscore"=>{:charcode=>95,
447
+ :wx=>500,
448
+ :name=>"underscore",
449
+ :boundingbox=>[-2,
450
+ -125,
451
+ 502,
452
+ -75]},
453
+ "radicalex"=>{:charcode=>96,
454
+ :wx=>500,
455
+ :name=>"radicalex",
456
+ :boundingbox=>[480,
457
+ 881,
458
+ 1090,
459
+ 917]},
460
+ "alpha"=>{:charcode=>97,
461
+ :wx=>631,
462
+ :name=>"alpha",
463
+ :boundingbox=>[41,
464
+ -18,
465
+ 622,
466
+ 500]},
467
+ "beta"=>{:charcode=>98,
468
+ :wx=>549,
469
+ :name=>"beta",
470
+ :boundingbox=>[61,
471
+ -223,
472
+ 515,
473
+ 741]},
474
+ "chi"=>{:charcode=>99,
475
+ :wx=>549,
476
+ :name=>"chi",
477
+ :boundingbox=>[12,
478
+ -231,
479
+ 522,
480
+ 499]},
481
+ "delta"=>{:charcode=>100,
482
+ :wx=>494,
483
+ :name=>"delta",
484
+ :boundingbox=>[40,
485
+ -19,
486
+ 481,
487
+ 740]},
488
+ "epsilon"=>{:charcode=>101,
489
+ :wx=>439,
490
+ :name=>"epsilon",
491
+ :boundingbox=>[22,
492
+ -19,
493
+ 427,
494
+ 502]},
495
+ "phi"=>{:charcode=>102,
496
+ :wx=>521,
497
+ :name=>"phi",
498
+ :boundingbox=>[28,
499
+ -224,
500
+ 492,
501
+ 673]},
502
+ "gamma"=>{:charcode=>103,
503
+ :wx=>411,
504
+ :name=>"gamma",
505
+ :boundingbox=>[5,
506
+ -225,
507
+ 484,
508
+ 499]},
509
+ "eta"=>{:charcode=>104,
510
+ :wx=>603,
511
+ :name=>"eta",
512
+ :boundingbox=>[0,
513
+ -202,
514
+ 527,
515
+ 514]},
516
+ "iota"=>{:charcode=>105,
517
+ :wx=>329,
518
+ :name=>"iota",
519
+ :boundingbox=>[0,
520
+ -17,
521
+ 301,
522
+ 503]},
523
+ "phi1"=>{:charcode=>106,
524
+ :wx=>603,
525
+ :name=>"phi1",
526
+ :boundingbox=>[36,
527
+ -224,
528
+ 587,
529
+ 499]},
530
+ "kappa"=>{:charcode=>107,
531
+ :wx=>549,
532
+ :name=>"kappa",
533
+ :boundingbox=>[33,
534
+ 0,
535
+ 558,
536
+ 501]},
537
+ "lambda"=>{:charcode=>108,
538
+ :wx=>549,
539
+ :name=>"lambda",
540
+ :boundingbox=>[24,
541
+ -17,
542
+ 548,
543
+ 739]},
544
+ "mu"=>{:charcode=>109,
545
+ :wx=>576,
546
+ :name=>"mu",
547
+ :boundingbox=>[33,
548
+ -223,
549
+ 567,
550
+ 500]},
551
+ "nu"=>{:charcode=>110,
552
+ :wx=>521,
553
+ :name=>"nu",
554
+ :boundingbox=>[-9,
555
+ -16,
556
+ 475,
557
+ 507]},
558
+ "omicron"=>{:charcode=>111,
559
+ :wx=>549,
560
+ :name=>"omicron",
561
+ :boundingbox=>[35,
562
+ -19,
563
+ 501,
564
+ 499]},
565
+ "pi"=>{:charcode=>112,
566
+ :wx=>549,
567
+ :name=>"pi",
568
+ :boundingbox=>[10,
569
+ -19,
570
+ 530,
571
+ 487]},
572
+ "theta"=>{:charcode=>113,
573
+ :wx=>521,
574
+ :name=>"theta",
575
+ :boundingbox=>[43,
576
+ -17,
577
+ 485,
578
+ 690]},
579
+ "rho"=>{:charcode=>114,
580
+ :wx=>549,
581
+ :name=>"rho",
582
+ :boundingbox=>[50,
583
+ -230,
584
+ 490,
585
+ 499]},
586
+ "sigma"=>{:charcode=>115,
587
+ :wx=>603,
588
+ :name=>"sigma",
589
+ :boundingbox=>[30,
590
+ -21,
591
+ 588,
592
+ 500]},
593
+ "tau"=>{:charcode=>116,
594
+ :wx=>439,
595
+ :name=>"tau",
596
+ :boundingbox=>[10,
597
+ -19,
598
+ 418,
599
+ 500]},
600
+ "upsilon"=>{:charcode=>117,
601
+ :wx=>576,
602
+ :name=>"upsilon",
603
+ :boundingbox=>[7,
604
+ -18,
605
+ 535,
606
+ 507]},
607
+ "omega1"=>{:charcode=>118,
608
+ :wx=>713,
609
+ :name=>"omega1",
610
+ :boundingbox=>[12,
611
+ -18,
612
+ 671,
613
+ 583]},
614
+ "omega"=>{:charcode=>119,
615
+ :wx=>686,
616
+ :name=>"omega",
617
+ :boundingbox=>[42,
618
+ -17,
619
+ 684,
620
+ 500]},
621
+ "xi"=>{:charcode=>120,
622
+ :wx=>493,
623
+ :name=>"xi",
624
+ :boundingbox=>[27,
625
+ -224,
626
+ 469,
627
+ 766]},
628
+ "psi"=>{:charcode=>121,
629
+ :wx=>686,
630
+ :name=>"psi",
631
+ :boundingbox=>[12,
632
+ -228,
633
+ 701,
634
+ 500]},
635
+ "zeta"=>{:charcode=>122,
636
+ :wx=>494,
637
+ :name=>"zeta",
638
+ :boundingbox=>[60,
639
+ -225,
640
+ 467,
641
+ 756]},
642
+ "braceleft"=>{:charcode=>123,
643
+ :wx=>480,
644
+ :name=>"braceleft",
645
+ :boundingbox=>[58,
646
+ -183,
647
+ 397,
648
+ 673]},
649
+ "bar"=>{:charcode=>124,
650
+ :wx=>200,
651
+ :name=>"bar",
652
+ :boundingbox=>[65,
653
+ -293,
654
+ 135,
655
+ 707]},
656
+ "braceright"=>{:charcode=>125,
657
+ :wx=>480,
658
+ :name=>"braceright",
659
+ :boundingbox=>[79,
660
+ -183,
661
+ 418,
662
+ 673]},
663
+ "similar"=>{:charcode=>126,
664
+ :wx=>549,
665
+ :name=>"similar",
666
+ :boundingbox=>[17,
667
+ 203,
668
+ 529,
669
+ 307]},
670
+ "Euro"=>{:charcode=>160,
671
+ :wx=>750,
672
+ :name=>"Euro",
673
+ :boundingbox=>[20,
674
+ -12,
675
+ 714,
676
+ 685]},
677
+ "Upsilon1"=>{:charcode=>161,
678
+ :wx=>620,
679
+ :name=>"Upsilon1",
680
+ :boundingbox=>[-2,
681
+ 0,
682
+ 610,
683
+ 685]},
684
+ "minute"=>{:charcode=>162,
685
+ :wx=>247,
686
+ :name=>"minute",
687
+ :boundingbox=>[27,
688
+ 459,
689
+ 228,
690
+ 735]},
691
+ "lessequal"=>{:charcode=>163,
692
+ :wx=>549,
693
+ :name=>"lessequal",
694
+ :boundingbox=>[29,
695
+ 0,
696
+ 526,
697
+ 639]},
698
+ "fraction"=>{:charcode=>164,
699
+ :wx=>167,
700
+ :name=>"fraction",
701
+ :boundingbox=>[-180,
702
+ -12,
703
+ 340,
704
+ 677]},
705
+ "infinity"=>{:charcode=>165,
706
+ :wx=>713,
707
+ :name=>"infinity",
708
+ :boundingbox=>[26,
709
+ 124,
710
+ 688,
711
+ 404]},
712
+ "florin"=>{:charcode=>166,
713
+ :wx=>500,
714
+ :name=>"florin",
715
+ :boundingbox=>[2,
716
+ -193,
717
+ 494,
718
+ 686]},
719
+ "club"=>{:charcode=>167,
720
+ :wx=>753,
721
+ :name=>"club",
722
+ :boundingbox=>[86,
723
+ -26,
724
+ 660,
725
+ 533]},
726
+ "diamond"=>{:charcode=>168,
727
+ :wx=>753,
728
+ :name=>"diamond",
729
+ :boundingbox=>[142,
730
+ -36,
731
+ 600,
732
+ 550]},
733
+ "heart"=>{:charcode=>169,
734
+ :wx=>753,
735
+ :name=>"heart",
736
+ :boundingbox=>[117,
737
+ -33,
738
+ 631,
739
+ 532]},
740
+ "spade"=>{:charcode=>170,
741
+ :wx=>753,
742
+ :name=>"spade",
743
+ :boundingbox=>[113,
744
+ -36,
745
+ 629,
746
+ 548]},
747
+ "arrowboth"=>{:charcode=>171,
748
+ :wx=>1042,
749
+ :name=>"arrowboth",
750
+ :boundingbox=>[24,
751
+ -15,
752
+ 1024,
753
+ 511]},
754
+ "arrowleft"=>{:charcode=>172,
755
+ :wx=>987,
756
+ :name=>"arrowleft",
757
+ :boundingbox=>[32,
758
+ -15,
759
+ 942,
760
+ 511]},
761
+ "arrowup"=>{:charcode=>173,
762
+ :wx=>603,
763
+ :name=>"arrowup",
764
+ :boundingbox=>[45,
765
+ 0,
766
+ 571,
767
+ 910]},
768
+ "arrowright"=>{:charcode=>174,
769
+ :wx=>987,
770
+ :name=>"arrowright",
771
+ :boundingbox=>[49,
772
+ -15,
773
+ 959,
774
+ 511]},
775
+ "arrowdown"=>{:charcode=>175,
776
+ :wx=>603,
777
+ :name=>"arrowdown",
778
+ :boundingbox=>[45,
779
+ -22,
780
+ 571,
781
+ 888]},
782
+ "degree"=>{:charcode=>176,
783
+ :wx=>400,
784
+ :name=>"degree",
785
+ :boundingbox=>[50,
786
+ 385,
787
+ 350,
788
+ 685]},
789
+ "plusminus"=>{:charcode=>177,
790
+ :wx=>549,
791
+ :name=>"plusminus",
792
+ :boundingbox=>[10,
793
+ 0,
794
+ 539,
795
+ 645]},
796
+ "second"=>{:charcode=>178,
797
+ :wx=>411,
798
+ :name=>"second",
799
+ :boundingbox=>[20,
800
+ 459,
801
+ 413,
802
+ 737]},
803
+ "greaterequal"=>{:charcode=>179,
804
+ :wx=>549,
805
+ :name=>"greaterequal",
806
+ :boundingbox=>[29,
807
+ 0,
808
+ 526,
809
+ 639]},
810
+ "multiply"=>{:charcode=>180,
811
+ :wx=>549,
812
+ :name=>"multiply",
813
+ :boundingbox=>[17,
814
+ 8,
815
+ 533,
816
+ 524]},
817
+ "proportional"=>{:charcode=>181,
818
+ :wx=>713,
819
+ :name=>"proportional",
820
+ :boundingbox=>[27,
821
+ 123,
822
+ 639,
823
+ 404]},
824
+ "partialdiff"=>{:charcode=>182,
825
+ :wx=>494,
826
+ :name=>"partialdiff",
827
+ :boundingbox=>[26,
828
+ -20,
829
+ 462,
830
+ 746]},
831
+ "bullet"=>{:charcode=>183,
832
+ :wx=>460,
833
+ :name=>"bullet",
834
+ :boundingbox=>[50,
835
+ 113,
836
+ 410,
837
+ 473]},
838
+ "divide"=>{:charcode=>184,
839
+ :wx=>549,
840
+ :name=>"divide",
841
+ :boundingbox=>[10,
842
+ 71,
843
+ 536,
844
+ 456]},
845
+ "notequal"=>{:charcode=>185,
846
+ :wx=>549,
847
+ :name=>"notequal",
848
+ :boundingbox=>[15,
849
+ -25,
850
+ 540,
851
+ 549]},
852
+ "equivalence"=>{:charcode=>186,
853
+ :wx=>549,
854
+ :name=>"equivalence",
855
+ :boundingbox=>[14,
856
+ 82,
857
+ 538,
858
+ 443]},
859
+ "approxequal"=>{:charcode=>187,
860
+ :wx=>549,
861
+ :name=>"approxequal",
862
+ :boundingbox=>[14,
863
+ 135,
864
+ 527,
865
+ 394]},
866
+ "ellipsis"=>{:charcode=>188,
867
+ :wx=>1000,
868
+ :name=>"ellipsis",
869
+ :boundingbox=>[111,
870
+ -17,
871
+ 889,
872
+ 95]},
873
+ "arrowvertex"=>{:charcode=>189,
874
+ :wx=>603,
875
+ :name=>"arrowvertex",
876
+ :boundingbox=>[280,
877
+ -120,
878
+ 336,
879
+ 1010]},
880
+ "arrowhorizex"=>{:charcode=>190,
881
+ :wx=>1000,
882
+ :name=>"arrowhorizex",
883
+ :boundingbox=>[-60,
884
+ 220,
885
+ 1050,
886
+ 276]},
887
+ "carriagereturn"=>{:charcode=>191,
888
+ :wx=>658,
889
+ :name=>"carriagereturn",
890
+ :boundingbox=>[15,
891
+ -16,
892
+ 602,
893
+ 629]},
894
+ "aleph"=>{:charcode=>192,
895
+ :wx=>823,
896
+ :name=>"aleph",
897
+ :boundingbox=>[175,
898
+ -18,
899
+ 661,
900
+ 658]},
901
+ "Ifraktur"=>{:charcode=>193,
902
+ :wx=>686,
903
+ :name=>"Ifraktur",
904
+ :boundingbox=>[10,
905
+ -53,
906
+ 578,
907
+ 740]},
908
+ "Rfraktur"=>{:charcode=>194,
909
+ :wx=>795,
910
+ :name=>"Rfraktur",
911
+ :boundingbox=>[26,
912
+ -15,
913
+ 759,
914
+ 734]},
915
+ "weierstrass"=>{:charcode=>195,
916
+ :wx=>987,
917
+ :name=>"weierstrass",
918
+ :boundingbox=>[159,
919
+ -211,
920
+ 870,
921
+ 573]},
922
+ "circlemultiply"=>{:charcode=>196,
923
+ :wx=>768,
924
+ :name=>"circlemultiply",
925
+ :boundingbox=>[43,
926
+ -17,
927
+ 733,
928
+ 673]},
929
+ "circleplus"=>{:charcode=>197,
930
+ :wx=>768,
931
+ :name=>"circleplus",
932
+ :boundingbox=>[43,
933
+ -15,
934
+ 733,
935
+ 675]},
936
+ "emptyset"=>{:charcode=>198,
937
+ :wx=>823,
938
+ :name=>"emptyset",
939
+ :boundingbox=>[39,
940
+ -24,
941
+ 781,
942
+ 719]},
943
+ "intersection"=>{:charcode=>199,
944
+ :wx=>768,
945
+ :name=>"intersection",
946
+ :boundingbox=>[40,
947
+ 0,
948
+ 732,
949
+ 509]},
950
+ "union"=>{:charcode=>200,
951
+ :wx=>768,
952
+ :name=>"union",
953
+ :boundingbox=>[40,
954
+ -17,
955
+ 732,
956
+ 492]},
957
+ "propersuperset"=>{:charcode=>201,
958
+ :wx=>713,
959
+ :name=>"propersuperset",
960
+ :boundingbox=>[20,
961
+ 0,
962
+ 673,
963
+ 470]},
964
+ "reflexsuperset"=>{:charcode=>202,
965
+ :wx=>713,
966
+ :name=>"reflexsuperset",
967
+ :boundingbox=>[20,
968
+ -125,
969
+ 673,
970
+ 470]},
971
+ "notsubset"=>{:charcode=>203,
972
+ :wx=>713,
973
+ :name=>"notsubset",
974
+ :boundingbox=>[36,
975
+ -70,
976
+ 690,
977
+ 540]},
978
+ "propersubset"=>{:charcode=>204,
979
+ :wx=>713,
980
+ :name=>"propersubset",
981
+ :boundingbox=>[37,
982
+ 0,
983
+ 690,
984
+ 470]},
985
+ "reflexsubset"=>{:charcode=>205,
986
+ :wx=>713,
987
+ :name=>"reflexsubset",
988
+ :boundingbox=>[37,
989
+ -125,
990
+ 690,
991
+ 470]},
992
+ "element"=>{:charcode=>206,
993
+ :wx=>713,
994
+ :name=>"element",
995
+ :boundingbox=>[45,
996
+ 0,
997
+ 505,
998
+ 468]},
999
+ "notelement"=>{:charcode=>207,
1000
+ :wx=>713,
1001
+ :name=>"notelement",
1002
+ :boundingbox=>[45,
1003
+ -58,
1004
+ 505,
1005
+ 555]},
1006
+ "angle"=>{:charcode=>208,
1007
+ :wx=>768,
1008
+ :name=>"angle",
1009
+ :boundingbox=>[26,
1010
+ 0,
1011
+ 738,
1012
+ 673]},
1013
+ "gradient"=>{:charcode=>209,
1014
+ :wx=>713,
1015
+ :name=>"gradient",
1016
+ :boundingbox=>[36,
1017
+ -19,
1018
+ 681,
1019
+ 718]},
1020
+ "registerserif"=>{:charcode=>210,
1021
+ :wx=>790,
1022
+ :name=>"registerserif",
1023
+ :boundingbox=>[50,
1024
+ -17,
1025
+ 740,
1026
+ 673]},
1027
+ "copyrightserif"=>{:charcode=>211,
1028
+ :wx=>790,
1029
+ :name=>"copyrightserif",
1030
+ :boundingbox=>[51,
1031
+ -15,
1032
+ 741,
1033
+ 675]},
1034
+ "trademarkserif"=>{:charcode=>212,
1035
+ :wx=>890,
1036
+ :name=>"trademarkserif",
1037
+ :boundingbox=>[18,
1038
+ 293,
1039
+ 855,
1040
+ 673]},
1041
+ "product"=>{:charcode=>213,
1042
+ :wx=>823,
1043
+ :name=>"product",
1044
+ :boundingbox=>[25,
1045
+ -101,
1046
+ 803,
1047
+ 751]},
1048
+ "radical"=>{:charcode=>214,
1049
+ :wx=>549,
1050
+ :name=>"radical",
1051
+ :boundingbox=>[10,
1052
+ -38,
1053
+ 515,
1054
+ 917]},
1055
+ "dotmath"=>{:charcode=>215,
1056
+ :wx=>250,
1057
+ :name=>"dotmath",
1058
+ :boundingbox=>[69,
1059
+ 210,
1060
+ 169,
1061
+ 310]},
1062
+ "logicalnot"=>{:charcode=>216,
1063
+ :wx=>713,
1064
+ :name=>"logicalnot",
1065
+ :boundingbox=>[15,
1066
+ 0,
1067
+ 680,
1068
+ 288]},
1069
+ "logicaland"=>{:charcode=>217,
1070
+ :wx=>603,
1071
+ :name=>"logicaland",
1072
+ :boundingbox=>[23,
1073
+ 0,
1074
+ 583,
1075
+ 454]},
1076
+ "logicalor"=>{:charcode=>218,
1077
+ :wx=>603,
1078
+ :name=>"logicalor",
1079
+ :boundingbox=>[30,
1080
+ 0,
1081
+ 578,
1082
+ 477]},
1083
+ "arrowdblboth"=>{:charcode=>219,
1084
+ :wx=>1042,
1085
+ :name=>"arrowdblboth",
1086
+ :boundingbox=>[27,
1087
+ -20,
1088
+ 1023,
1089
+ 510]},
1090
+ "arrowdblleft"=>{:charcode=>220,
1091
+ :wx=>987,
1092
+ :name=>"arrowdblleft",
1093
+ :boundingbox=>[30,
1094
+ -15,
1095
+ 939,
1096
+ 513]},
1097
+ "arrowdblup"=>{:charcode=>221,
1098
+ :wx=>603,
1099
+ :name=>"arrowdblup",
1100
+ :boundingbox=>[39,
1101
+ 2,
1102
+ 567,
1103
+ 911]},
1104
+ "arrowdblright"=>{:charcode=>222,
1105
+ :wx=>987,
1106
+ :name=>"arrowdblright",
1107
+ :boundingbox=>[45,
1108
+ -20,
1109
+ 954,
1110
+ 508]},
1111
+ "arrowdbldown"=>{:charcode=>223,
1112
+ :wx=>603,
1113
+ :name=>"arrowdbldown",
1114
+ :boundingbox=>[44,
1115
+ -19,
1116
+ 572,
1117
+ 890]},
1118
+ "lozenge"=>{:charcode=>224,
1119
+ :wx=>494,
1120
+ :name=>"lozenge",
1121
+ :boundingbox=>[18,
1122
+ 0,
1123
+ 466,
1124
+ 745]},
1125
+ "angleleft"=>{:charcode=>225,
1126
+ :wx=>329,
1127
+ :name=>"angleleft",
1128
+ :boundingbox=>[25,
1129
+ -198,
1130
+ 306,
1131
+ 746]},
1132
+ "registersans"=>{:charcode=>226,
1133
+ :wx=>790,
1134
+ :name=>"registersans",
1135
+ :boundingbox=>[50,
1136
+ -20,
1137
+ 740,
1138
+ 670]},
1139
+ "copyrightsans"=>{:charcode=>227,
1140
+ :wx=>790,
1141
+ :name=>"copyrightsans",
1142
+ :boundingbox=>[49,
1143
+ -15,
1144
+ 739,
1145
+ 675]},
1146
+ "trademarksans"=>{:charcode=>228,
1147
+ :wx=>786,
1148
+ :name=>"trademarksans",
1149
+ :boundingbox=>[5,
1150
+ 293,
1151
+ 725,
1152
+ 673]},
1153
+ "summation"=>{:charcode=>229,
1154
+ :wx=>713,
1155
+ :name=>"summation",
1156
+ :boundingbox=>[14,
1157
+ -108,
1158
+ 695,
1159
+ 752]},
1160
+ "parenlefttp"=>{:charcode=>230,
1161
+ :wx=>384,
1162
+ :name=>"parenlefttp",
1163
+ :boundingbox=>[24,
1164
+ -293,
1165
+ 436,
1166
+ 926]},
1167
+ "parenleftex"=>{:charcode=>231,
1168
+ :wx=>384,
1169
+ :name=>"parenleftex",
1170
+ :boundingbox=>[24,
1171
+ -85,
1172
+ 108,
1173
+ 925]},
1174
+ "parenleftbt"=>{:charcode=>232,
1175
+ :wx=>384,
1176
+ :name=>"parenleftbt",
1177
+ :boundingbox=>[24,
1178
+ -293,
1179
+ 436,
1180
+ 926]},
1181
+ "bracketlefttp"=>{:charcode=>233,
1182
+ :wx=>384,
1183
+ :name=>"bracketlefttp",
1184
+ :boundingbox=>[0,
1185
+ -80,
1186
+ 349,
1187
+ 926]},
1188
+ "bracketleftex"=>{:charcode=>234,
1189
+ :wx=>384,
1190
+ :name=>"bracketleftex",
1191
+ :boundingbox=>[0,
1192
+ -79,
1193
+ 77,
1194
+ 925]},
1195
+ "bracketleftbt"=>{:charcode=>235,
1196
+ :wx=>384,
1197
+ :name=>"bracketleftbt",
1198
+ :boundingbox=>[0,
1199
+ -80,
1200
+ 349,
1201
+ 926]},
1202
+ "bracelefttp"=>{:charcode=>236,
1203
+ :wx=>494,
1204
+ :name=>"bracelefttp",
1205
+ :boundingbox=>[209,
1206
+ -85,
1207
+ 445,
1208
+ 925]},
1209
+ "braceleftmid"=>{:charcode=>237,
1210
+ :wx=>494,
1211
+ :name=>"braceleftmid",
1212
+ :boundingbox=>[20,
1213
+ -85,
1214
+ 284,
1215
+ 935]},
1216
+ "braceleftbt"=>{:charcode=>238,
1217
+ :wx=>494,
1218
+ :name=>"braceleftbt",
1219
+ :boundingbox=>[209,
1220
+ -75,
1221
+ 445,
1222
+ 935]},
1223
+ "braceex"=>{:charcode=>239,
1224
+ :wx=>494,
1225
+ :name=>"braceex",
1226
+ :boundingbox=>[209,
1227
+ -85,
1228
+ 284,
1229
+ 935]},
1230
+ "angleright"=>{:charcode=>241,
1231
+ :wx=>329,
1232
+ :name=>"angleright",
1233
+ :boundingbox=>[21,
1234
+ -198,
1235
+ 302,
1236
+ 746]},
1237
+ "integral"=>{:charcode=>242,
1238
+ :wx=>274,
1239
+ :name=>"integral",
1240
+ :boundingbox=>[2,
1241
+ -107,
1242
+ 291,
1243
+ 916]},
1244
+ "integraltp"=>{:charcode=>243,
1245
+ :wx=>686,
1246
+ :name=>"integraltp",
1247
+ :boundingbox=>[308,
1248
+ -88,
1249
+ 675,
1250
+ 920]},
1251
+ "integralex"=>{:charcode=>244,
1252
+ :wx=>686,
1253
+ :name=>"integralex",
1254
+ :boundingbox=>[308,
1255
+ -88,
1256
+ 378,
1257
+ 975]},
1258
+ "integralbt"=>{:charcode=>245,
1259
+ :wx=>686,
1260
+ :name=>"integralbt",
1261
+ :boundingbox=>[11,
1262
+ -87,
1263
+ 378,
1264
+ 921]},
1265
+ "parenrighttp"=>{:charcode=>246,
1266
+ :wx=>384,
1267
+ :name=>"parenrighttp",
1268
+ :boundingbox=>[54,
1269
+ -293,
1270
+ 466,
1271
+ 926]},
1272
+ "parenrightex"=>{:charcode=>247,
1273
+ :wx=>384,
1274
+ :name=>"parenrightex",
1275
+ :boundingbox=>[382,
1276
+ -85,
1277
+ 466,
1278
+ 925]},
1279
+ "parenrightbt"=>{:charcode=>248,
1280
+ :wx=>384,
1281
+ :name=>"parenrightbt",
1282
+ :boundingbox=>[54,
1283
+ -293,
1284
+ 466,
1285
+ 926]},
1286
+ "bracketrighttp"=>{:charcode=>249,
1287
+ :wx=>384,
1288
+ :name=>"bracketrighttp",
1289
+ :boundingbox=>[22,
1290
+ -80,
1291
+ 371,
1292
+ 926]},
1293
+ "bracketrightex"=>{:charcode=>250,
1294
+ :wx=>384,
1295
+ :name=>"bracketrightex",
1296
+ :boundingbox=>[294,
1297
+ -79,
1298
+ 371,
1299
+ 925]},
1300
+ "bracketrightbt"=>{:charcode=>251,
1301
+ :wx=>384,
1302
+ :name=>"bracketrightbt",
1303
+ :boundingbox=>[22,
1304
+ -80,
1305
+ 371,
1306
+ 926]},
1307
+ "bracerighttp"=>{:charcode=>252,
1308
+ :wx=>494,
1309
+ :name=>"bracerighttp",
1310
+ :boundingbox=>[48,
1311
+ -85,
1312
+ 284,
1313
+ 925]},
1314
+ "bracerightmid"=>{:charcode=>253,
1315
+ :wx=>494,
1316
+ :name=>"bracerightmid",
1317
+ :boundingbox=>[209,
1318
+ -85,
1319
+ 473,
1320
+ 935]},
1321
+ "bracerightbt"=>{:charcode=>254,
1322
+ :wx=>494,
1323
+ :name=>"bracerightbt",
1324
+ :boundingbox=>[48,
1325
+ -75,
1326
+ 284,
1327
+ 935]},
1328
+ "apple"=>{:charcode=>-1,
1329
+ :wx=>790,
1330
+ :name=>"apple",
1331
+ :boundingbox=>[56,
1332
+ -3,
1333
+ 733,
1334
+ 808]}}
1335
+ end
1336
+ end