]> git.ipfire.org Git - thirdparty/cups.git/blame - pdftops/FoFiEncodings.cxx
Merge changes from CUPS 1.4svn-r7199.
[thirdparty/cups.git] / pdftops / FoFiEncodings.cxx
CommitLineData
ef416fc2 1//========================================================================
2//
3// FoFiEncodings.cc
4//
5// Copyright 1999-2003 Glyph & Cog, LLC
6//
7//========================================================================
8
9#include <config.h>
10
11#ifdef USE_GCC_PRAGMAS
12#pragma implementation
13#endif
14
15#include <stdlib.h>
16#include "FoFiEncodings.h"
17
18//------------------------------------------------------------------------
19// Type 1 and 1C font data
20//------------------------------------------------------------------------
21
22char *fofiType1StandardEncoding[256] = {
23 NULL,
24 NULL,
25 NULL,
26 NULL,
27 NULL,
28 NULL,
29 NULL,
30 NULL,
31 NULL,
32 NULL,
33 NULL,
34 NULL,
35 NULL,
36 NULL,
37 NULL,
38 NULL,
39 NULL,
40 NULL,
41 NULL,
42 NULL,
43 NULL,
44 NULL,
45 NULL,
46 NULL,
47 NULL,
48 NULL,
49 NULL,
50 NULL,
51 NULL,
52 NULL,
53 NULL,
54 NULL,
55 "space",
56 "exclam",
57 "quotedbl",
58 "numbersign",
59 "dollar",
60 "percent",
61 "ampersand",
62 "quoteright",
63 "parenleft",
64 "parenright",
65 "asterisk",
66 "plus",
67 "comma",
68 "hyphen",
69 "period",
70 "slash",
71 "zero",
72 "one",
73 "two",
74 "three",
75 "four",
76 "five",
77 "six",
78 "seven",
79 "eight",
80 "nine",
81 "colon",
82 "semicolon",
83 "less",
84 "equal",
85 "greater",
86 "question",
87 "at",
88 "A",
89 "B",
90 "C",
91 "D",
92 "E",
93 "F",
94 "G",
95 "H",
96 "I",
97 "J",
98 "K",
99 "L",
100 "M",
101 "N",
102 "O",
103 "P",
104 "Q",
105 "R",
106 "S",
107 "T",
108 "U",
109 "V",
110 "W",
111 "X",
112 "Y",
113 "Z",
114 "bracketleft",
115 "backslash",
116 "bracketright",
117 "asciicircum",
118 "underscore",
119 "quoteleft",
120 "a",
121 "b",
122 "c",
123 "d",
124 "e",
125 "f",
126 "g",
127 "h",
128 "i",
129 "j",
130 "k",
131 "l",
132 "m",
133 "n",
134 "o",
135 "p",
136 "q",
137 "r",
138 "s",
139 "t",
140 "u",
141 "v",
142 "w",
143 "x",
144 "y",
145 "z",
146 "braceleft",
147 "bar",
148 "braceright",
149 "asciitilde",
150 NULL,
151 NULL,
152 NULL,
153 NULL,
154 NULL,
155 NULL,
156 NULL,
157 NULL,
158 NULL,
159 NULL,
160 NULL,
161 NULL,
162 NULL,
163 NULL,
164 NULL,
165 NULL,
166 NULL,
167 NULL,
168 NULL,
169 NULL,
170 NULL,
171 NULL,
172 NULL,
173 NULL,
174 NULL,
175 NULL,
176 NULL,
177 NULL,
178 NULL,
179 NULL,
180 NULL,
181 NULL,
182 NULL,
183 NULL,
184 "exclamdown",
185 "cent",
186 "sterling",
187 "fraction",
188 "yen",
189 "florin",
190 "section",
191 "currency",
192 "quotesingle",
193 "quotedblleft",
194 "guillemotleft",
195 "guilsinglleft",
196 "guilsinglright",
197 "fi",
198 "fl",
199 NULL,
200 "endash",
201 "dagger",
202 "daggerdbl",
203 "periodcentered",
204 NULL,
205 "paragraph",
206 "bullet",
207 "quotesinglbase",
208 "quotedblbase",
209 "quotedblright",
210 "guillemotright",
211 "ellipsis",
212 "perthousand",
213 NULL,
214 "questiondown",
215 NULL,
216 "grave",
217 "acute",
218 "circumflex",
219 "tilde",
220 "macron",
221 "breve",
222 "dotaccent",
223 "dieresis",
224 NULL,
225 "ring",
226 "cedilla",
227 NULL,
228 "hungarumlaut",
229 "ogonek",
230 "caron",
231 "emdash",
232 NULL,
233 NULL,
234 NULL,
235 NULL,
236 NULL,
237 NULL,
238 NULL,
239 NULL,
240 NULL,
241 NULL,
242 NULL,
243 NULL,
244 NULL,
245 NULL,
246 NULL,
247 NULL,
248 "AE",
249 NULL,
250 "ordfeminine",
251 NULL,
252 NULL,
253 NULL,
254 NULL,
255 "Lslash",
256 "Oslash",
257 "OE",
258 "ordmasculine",
259 NULL,
260 NULL,
261 NULL,
262 NULL,
263 NULL,
264 "ae",
265 NULL,
266 NULL,
267 NULL,
268 "dotlessi",
269 NULL,
270 NULL,
271 "lslash",
272 "oslash",
273 "oe",
274 "germandbls",
275 NULL,
276 NULL,
277 NULL,
278 NULL
279};
280
281char *fofiType1ExpertEncoding[256] = {
282 NULL,
283 NULL,
284 NULL,
285 NULL,
286 NULL,
287 NULL,
288 NULL,
289 NULL,
290 NULL,
291 NULL,
292 NULL,
293 NULL,
294 NULL,
295 NULL,
296 NULL,
297 NULL,
298 NULL,
299 NULL,
300 NULL,
301 NULL,
302 NULL,
303 NULL,
304 NULL,
305 NULL,
306 NULL,
307 NULL,
308 NULL,
309 NULL,
310 NULL,
311 NULL,
312 NULL,
313 NULL,
314 "space",
315 "exclamsmall",
316 "Hungarumlautsmall",
317 NULL,
318 "dollaroldstyle",
319 "dollarsuperior",
320 "ampersandsmall",
321 "Acutesmall",
322 "parenleftsuperior",
323 "parenrightsuperior",
324 "twodotenleader",
325 "onedotenleader",
326 "comma",
327 "hyphen",
328 "period",
329 "fraction",
330 "zerooldstyle",
331 "oneoldstyle",
332 "twooldstyle",
333 "threeoldstyle",
334 "fouroldstyle",
335 "fiveoldstyle",
336 "sixoldstyle",
337 "sevenoldstyle",
338 "eightoldstyle",
339 "nineoldstyle",
340 "colon",
341 "semicolon",
342 "commasuperior",
343 "threequartersemdash",
344 "periodsuperior",
345 "questionsmall",
346 NULL,
347 "asuperior",
348 "bsuperior",
349 "centsuperior",
350 "dsuperior",
351 "esuperior",
352 NULL,
353 NULL,
354 NULL,
355 "isuperior",
356 NULL,
357 NULL,
358 "lsuperior",
359 "msuperior",
360 "nsuperior",
361 "osuperior",
362 NULL,
363 NULL,
364 "rsuperior",
365 "ssuperior",
366 "tsuperior",
367 NULL,
368 "ff",
369 "fi",
370 "fl",
371 "ffi",
372 "ffl",
373 "parenleftinferior",
374 NULL,
375 "parenrightinferior",
376 "Circumflexsmall",
377 "hyphensuperior",
378 "Gravesmall",
379 "Asmall",
380 "Bsmall",
381 "Csmall",
382 "Dsmall",
383 "Esmall",
384 "Fsmall",
385 "Gsmall",
386 "Hsmall",
387 "Ismall",
388 "Jsmall",
389 "Ksmall",
390 "Lsmall",
391 "Msmall",
392 "Nsmall",
393 "Osmall",
394 "Psmall",
395 "Qsmall",
396 "Rsmall",
397 "Ssmall",
398 "Tsmall",
399 "Usmall",
400 "Vsmall",
401 "Wsmall",
402 "Xsmall",
403 "Ysmall",
404 "Zsmall",
405 "colonmonetary",
406 "onefitted",
407 "rupiah",
408 "Tildesmall",
409 NULL,
410 NULL,
411 NULL,
412 NULL,
413 NULL,
414 NULL,
415 NULL,
416 NULL,
417 NULL,
418 NULL,
419 NULL,
420 NULL,
421 NULL,
422 NULL,
423 NULL,
424 NULL,
425 NULL,
426 NULL,
427 NULL,
428 NULL,
429 NULL,
430 NULL,
431 NULL,
432 NULL,
433 NULL,
434 NULL,
435 NULL,
436 NULL,
437 NULL,
438 NULL,
439 NULL,
440 NULL,
441 NULL,
442 NULL,
443 "exclamdownsmall",
444 "centoldstyle",
445 "Lslashsmall",
446 NULL,
447 NULL,
448 "Scaronsmall",
449 "Zcaronsmall",
450 "Dieresissmall",
451 "Brevesmall",
452 "Caronsmall",
453 NULL,
454 "Dotaccentsmall",
455 NULL,
456 NULL,
457 "Macronsmall",
458 NULL,
459 NULL,
460 "figuredash",
461 "hypheninferior",
462 NULL,
463 NULL,
464 "Ogoneksmall",
465 "Ringsmall",
466 "Cedillasmall",
467 NULL,
468 NULL,
469 NULL,
470 "onequarter",
471 "onehalf",
472 "threequarters",
473 "questiondownsmall",
474 "oneeighth",
475 "threeeighths",
476 "fiveeighths",
477 "seveneighths",
478 "onethird",
479 "twothirds",
480 NULL,
481 NULL,
482 "zerosuperior",
483 "onesuperior",
484 "twosuperior",
485 "threesuperior",
486 "foursuperior",
487 "fivesuperior",
488 "sixsuperior",
489 "sevensuperior",
490 "eightsuperior",
491 "ninesuperior",
492 "zeroinferior",
493 "oneinferior",
494 "twoinferior",
495 "threeinferior",
496 "fourinferior",
497 "fiveinferior",
498 "sixinferior",
499 "seveninferior",
500 "eightinferior",
501 "nineinferior",
502 "centinferior",
503 "dollarinferior",
504 "periodinferior",
505 "commainferior",
506 "Agravesmall",
507 "Aacutesmall",
508 "Acircumflexsmall",
509 "Atildesmall",
510 "Adieresissmall",
511 "Aringsmall",
512 "AEsmall",
513 "Ccedillasmall",
514 "Egravesmall",
515 "Eacutesmall",
516 "Ecircumflexsmall",
517 "Edieresissmall",
518 "Igravesmall",
519 "Iacutesmall",
520 "Icircumflexsmall",
521 "Idieresissmall",
522 "Ethsmall",
523 "Ntildesmall",
524 "Ogravesmall",
525 "Oacutesmall",
526 "Ocircumflexsmall",
527 "Otildesmall",
528 "Odieresissmall",
529 "OEsmall",
530 "Oslashsmall",
531 "Ugravesmall",
532 "Uacutesmall",
533 "Ucircumflexsmall",
534 "Udieresissmall",
535 "Yacutesmall",
536 "Thornsmall",
537 "Ydieresissmall"
538};
539
540//------------------------------------------------------------------------
541// Type 1C font data
542//------------------------------------------------------------------------
543
544char *fofiType1CStdStrings[391] = {
545 ".notdef",
546 "space",
547 "exclam",
548 "quotedbl",
549 "numbersign",
550 "dollar",
551 "percent",
552 "ampersand",
553 "quoteright",
554 "parenleft",
555 "parenright",
556 "asterisk",
557 "plus",
558 "comma",
559 "hyphen",
560 "period",
561 "slash",
562 "zero",
563 "one",
564 "two",
565 "three",
566 "four",
567 "five",
568 "six",
569 "seven",
570 "eight",
571 "nine",
572 "colon",
573 "semicolon",
574 "less",
575 "equal",
576 "greater",
577 "question",
578 "at",
579 "A",
580 "B",
581 "C",
582 "D",
583 "E",
584 "F",
585 "G",
586 "H",
587 "I",
588 "J",
589 "K",
590 "L",
591 "M",
592 "N",
593 "O",
594 "P",
595 "Q",
596 "R",
597 "S",
598 "T",
599 "U",
600 "V",
601 "W",
602 "X",
603 "Y",
604 "Z",
605 "bracketleft",
606 "backslash",
607 "bracketright",
608 "asciicircum",
609 "underscore",
610 "quoteleft",
611 "a",
612 "b",
613 "c",
614 "d",
615 "e",
616 "f",
617 "g",
618 "h",
619 "i",
620 "j",
621 "k",
622 "l",
623 "m",
624 "n",
625 "o",
626 "p",
627 "q",
628 "r",
629 "s",
630 "t",
631 "u",
632 "v",
633 "w",
634 "x",
635 "y",
636 "z",
637 "braceleft",
638 "bar",
639 "braceright",
640 "asciitilde",
641 "exclamdown",
642 "cent",
643 "sterling",
644 "fraction",
645 "yen",
646 "florin",
647 "section",
648 "currency",
649 "quotesingle",
650 "quotedblleft",
651 "guillemotleft",
652 "guilsinglleft",
653 "guilsinglright",
654 "fi",
655 "fl",
656 "endash",
657 "dagger",
658 "daggerdbl",
659 "periodcentered",
660 "paragraph",
661 "bullet",
662 "quotesinglbase",
663 "quotedblbase",
664 "quotedblright",
665 "guillemotright",
666 "ellipsis",
667 "perthousand",
668 "questiondown",
669 "grave",
670 "acute",
671 "circumflex",
672 "tilde",
673 "macron",
674 "breve",
675 "dotaccent",
676 "dieresis",
677 "ring",
678 "cedilla",
679 "hungarumlaut",
680 "ogonek",
681 "caron",
682 "emdash",
683 "AE",
684 "ordfeminine",
685 "Lslash",
686 "Oslash",
687 "OE",
688 "ordmasculine",
689 "ae",
690 "dotlessi",
691 "lslash",
692 "oslash",
693 "oe",
694 "germandbls",
695 "onesuperior",
696 "logicalnot",
697 "mu",
698 "trademark",
699 "Eth",
700 "onehalf",
701 "plusminus",
702 "Thorn",
703 "onequarter",
704 "divide",
705 "brokenbar",
706 "degree",
707 "thorn",
708 "threequarters",
709 "twosuperior",
710 "registered",
711 "minus",
712 "eth",
713 "multiply",
714 "threesuperior",
715 "copyright",
716 "Aacute",
717 "Acircumflex",
718 "Adieresis",
719 "Agrave",
720 "Aring",
721 "Atilde",
722 "Ccedilla",
723 "Eacute",
724 "Ecircumflex",
725 "Edieresis",
726 "Egrave",
727 "Iacute",
728 "Icircumflex",
729 "Idieresis",
730 "Igrave",
731 "Ntilde",
732 "Oacute",
733 "Ocircumflex",
734 "Odieresis",
735 "Ograve",
736 "Otilde",
737 "Scaron",
738 "Uacute",
739 "Ucircumflex",
740 "Udieresis",
741 "Ugrave",
742 "Yacute",
743 "Ydieresis",
744 "Zcaron",
745 "aacute",
746 "acircumflex",
747 "adieresis",
748 "agrave",
749 "aring",
750 "atilde",
751 "ccedilla",
752 "eacute",
753 "ecircumflex",
754 "edieresis",
755 "egrave",
756 "iacute",
757 "icircumflex",
758 "idieresis",
759 "igrave",
760 "ntilde",
761 "oacute",
762 "ocircumflex",
763 "odieresis",
764 "ograve",
765 "otilde",
766 "scaron",
767 "uacute",
768 "ucircumflex",
769 "udieresis",
770 "ugrave",
771 "yacute",
772 "ydieresis",
773 "zcaron",
774 "exclamsmall",
775 "Hungarumlautsmall",
776 "dollaroldstyle",
777 "dollarsuperior",
778 "ampersandsmall",
779 "Acutesmall",
780 "parenleftsuperior",
781 "parenrightsuperior",
782 "twodotenleader",
783 "onedotenleader",
784 "zerooldstyle",
785 "oneoldstyle",
786 "twooldstyle",
787 "threeoldstyle",
788 "fouroldstyle",
789 "fiveoldstyle",
790 "sixoldstyle",
791 "sevenoldstyle",
792 "eightoldstyle",
793 "nineoldstyle",
794 "commasuperior",
795 "threequartersemdash",
796 "periodsuperior",
797 "questionsmall",
798 "asuperior",
799 "bsuperior",
800 "centsuperior",
801 "dsuperior",
802 "esuperior",
803 "isuperior",
804 "lsuperior",
805 "msuperior",
806 "nsuperior",
807 "osuperior",
808 "rsuperior",
809 "ssuperior",
810 "tsuperior",
811 "ff",
812 "ffi",
813 "ffl",
814 "parenleftinferior",
815 "parenrightinferior",
816 "Circumflexsmall",
817 "hyphensuperior",
818 "Gravesmall",
819 "Asmall",
820 "Bsmall",
821 "Csmall",
822 "Dsmall",
823 "Esmall",
824 "Fsmall",
825 "Gsmall",
826 "Hsmall",
827 "Ismall",
828 "Jsmall",
829 "Ksmall",
830 "Lsmall",
831 "Msmall",
832 "Nsmall",
833 "Osmall",
834 "Psmall",
835 "Qsmall",
836 "Rsmall",
837 "Ssmall",
838 "Tsmall",
839 "Usmall",
840 "Vsmall",
841 "Wsmall",
842 "Xsmall",
843 "Ysmall",
844 "Zsmall",
845 "colonmonetary",
846 "onefitted",
847 "rupiah",
848 "Tildesmall",
849 "exclamdownsmall",
850 "centoldstyle",
851 "Lslashsmall",
852 "Scaronsmall",
853 "Zcaronsmall",
854 "Dieresissmall",
855 "Brevesmall",
856 "Caronsmall",
857 "Dotaccentsmall",
858 "Macronsmall",
859 "figuredash",
860 "hypheninferior",
861 "Ogoneksmall",
862 "Ringsmall",
863 "Cedillasmall",
864 "questiondownsmall",
865 "oneeighth",
866 "threeeighths",
867 "fiveeighths",
868 "seveneighths",
869 "onethird",
870 "twothirds",
871 "zerosuperior",
872 "foursuperior",
873 "fivesuperior",
874 "sixsuperior",
875 "sevensuperior",
876 "eightsuperior",
877 "ninesuperior",
878 "zeroinferior",
879 "oneinferior",
880 "twoinferior",
881 "threeinferior",
882 "fourinferior",
883 "fiveinferior",
884 "sixinferior",
885 "seveninferior",
886 "eightinferior",
887 "nineinferior",
888 "centinferior",
889 "dollarinferior",
890 "periodinferior",
891 "commainferior",
892 "Agravesmall",
893 "Aacutesmall",
894 "Acircumflexsmall",
895 "Atildesmall",
896 "Adieresissmall",
897 "Aringsmall",
898 "AEsmall",
899 "Ccedillasmall",
900 "Egravesmall",
901 "Eacutesmall",
902 "Ecircumflexsmall",
903 "Edieresissmall",
904 "Igravesmall",
905 "Iacutesmall",
906 "Icircumflexsmall",
907 "Idieresissmall",
908 "Ethsmall",
909 "Ntildesmall",
910 "Ogravesmall",
911 "Oacutesmall",
912 "Ocircumflexsmall",
913 "Otildesmall",
914 "Odieresissmall",
915 "OEsmall",
916 "Oslashsmall",
917 "Ugravesmall",
918 "Uacutesmall",
919 "Ucircumflexsmall",
920 "Udieresissmall",
921 "Yacutesmall",
922 "Thornsmall",
923 "Ydieresissmall",
924 "001.000",
925 "001.001",
926 "001.002",
927 "001.003",
928 "Black",
929 "Bold",
930 "Book",
931 "Light",
932 "Medium",
933 "Regular",
934 "Roman",
935 "Semibold"
936};
937
938Gushort fofiType1CISOAdobeCharset[229] = {
939 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
940 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
941 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
942 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
943 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
944 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
945 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
946 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
947 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
948 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
949 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
950 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
951 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
952 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
953 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
954 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
955 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
956 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
957 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
958 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
959 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
960 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
961 220, 221, 222, 223, 224, 225, 226, 227, 228
962};
963
964Gushort fofiType1CExpertCharset[166] = {
965 0, 1, 229, 230, 231, 232, 233, 234, 235, 236,
966 237, 238, 13, 14, 15, 99, 239, 240, 241, 242,
967 243, 244, 245, 246, 247, 248, 27, 28, 249, 250,
968 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
969 261, 262, 263, 264, 265, 266, 109, 110, 267, 268,
970 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
971 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
972 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
973 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
974 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
975 158, 155, 163, 319, 320, 321, 322, 323, 324, 325,
976 326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
977 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
978 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
979 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
980 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
981 373, 374, 375, 376, 377, 378
982};
983
984Gushort fofiType1CExpertSubsetCharset[87] = {
985 0, 1, 231, 232, 235, 236, 237, 238, 13, 14,
986 15, 99, 239, 240, 241, 242, 243, 244, 245, 246,
987 247, 248, 27, 28, 249, 250, 251, 253, 254, 255,
988 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
989 266, 109, 110, 267, 268, 269, 270, 272, 300, 301,
990 302, 305, 314, 315, 158, 155, 163, 320, 321, 322,
991 323, 324, 325, 326, 150, 164, 169, 327, 328, 329,
992 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
993 340, 341, 342, 343, 344, 345, 346
994};