Primer commit del sistema avantika sin cambios
This commit is contained in:
4897
pdf/lib/class.pdf.php
Executable file
4897
pdf/lib/class.pdf.php
Executable file
File diff suppressed because it is too large
Load Diff
344
pdf/lib/fonts/Courier-Bold.afm
Executable file
344
pdf/lib/fonts/Courier-Bold.afm
Executable file
@@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Mon Jun 23 16:28:00 0:00:00
|
||||
Comment UniqueID 43048
|
||||
Comment VMusage 41139 52164
|
||||
FontName Courier-Bold
|
||||
FullName Courier Bold
|
||||
FamilyName Courier
|
||||
Weight Bold
|
||||
ItalicAngle 0
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -113 -250 749 801
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 003.000
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 439
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 84
|
||||
StdVW 106
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ;
|
||||
C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 171 277 423 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ;
|
||||
C 43 ; WX 600 ; N plus ; B 71 39 529 478 ;
|
||||
C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
|
||||
C 46 ; WX 600 ; N period ; B 192 -15 408 171 ;
|
||||
C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ;
|
||||
C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ;
|
||||
C 49 ; WX 600 ; N one ; B 81 0 539 616 ;
|
||||
C 50 ; WX 600 ; N two ; B 61 0 499 616 ;
|
||||
C 51 ; WX 600 ; N three ; B 63 -15 501 616 ;
|
||||
C 52 ; WX 600 ; N four ; B 53 0 507 616 ;
|
||||
C 53 ; WX 600 ; N five ; B 70 -15 521 601 ;
|
||||
C 54 ; WX 600 ; N six ; B 90 -15 521 616 ;
|
||||
C 55 ; WX 600 ; N seven ; B 55 0 494 601 ;
|
||||
C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ;
|
||||
C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ;
|
||||
C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ;
|
||||
C 60 ; WX 600 ; N less ; B 66 15 523 501 ;
|
||||
C 61 ; WX 600 ; N equal ; B 71 118 529 398 ;
|
||||
C 62 ; WX 600 ; N greater ; B 77 15 534 501 ;
|
||||
C 63 ; WX 600 ; N question ; B 98 -14 501 580 ;
|
||||
C 64 ; WX 600 ; N at ; B 16 -15 584 616 ;
|
||||
C 65 ; WX 600 ; N A ; B -9 0 609 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 30 0 573 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 22 -18 560 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 30 0 594 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 25 0 560 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 39 0 570 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 22 -18 594 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 20 0 580 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 77 0 523 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 37 -18 601 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 21 0 599 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 39 0 578 562 ;
|
||||
C 77 ; WX 600 ; N M ; B -2 0 602 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 8 -12 610 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 22 -18 578 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 48 0 559 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 24 0 599 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 47 -22 553 582 ;
|
||||
C 84 ; WX 600 ; N T ; B 21 0 579 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 4 -18 596 562 ;
|
||||
C 86 ; WX 600 ; N V ; B -13 0 613 562 ;
|
||||
C 87 ; WX 600 ; N W ; B -18 0 618 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 12 0 588 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 12 0 589 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 62 0 539 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ;
|
||||
C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 178 277 428 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 35 -15 570 454 ;
|
||||
C 98 ; WX 600 ; N b ; B 0 -15 584 626 ;
|
||||
C 99 ; WX 600 ; N c ; B 40 -15 545 459 ;
|
||||
C 100 ; WX 600 ; N d ; B 20 -15 591 626 ;
|
||||
C 101 ; WX 600 ; N e ; B 40 -15 563 454 ;
|
||||
C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 30 -146 580 454 ;
|
||||
C 104 ; WX 600 ; N h ; B 5 0 592 626 ;
|
||||
C 105 ; WX 600 ; N i ; B 77 0 523 658 ;
|
||||
C 106 ; WX 600 ; N j ; B 63 -146 440 658 ;
|
||||
C 107 ; WX 600 ; N k ; B 20 0 585 626 ;
|
||||
C 108 ; WX 600 ; N l ; B 77 0 523 626 ;
|
||||
C 109 ; WX 600 ; N m ; B -22 0 626 454 ;
|
||||
C 110 ; WX 600 ; N n ; B 18 0 592 454 ;
|
||||
C 111 ; WX 600 ; N o ; B 30 -15 570 454 ;
|
||||
C 112 ; WX 600 ; N p ; B -1 -142 570 454 ;
|
||||
C 113 ; WX 600 ; N q ; B 20 -142 591 454 ;
|
||||
C 114 ; WX 600 ; N r ; B 47 0 580 454 ;
|
||||
C 115 ; WX 600 ; N s ; B 68 -17 535 459 ;
|
||||
C 116 ; WX 600 ; N t ; B 47 -15 532 562 ;
|
||||
C 117 ; WX 600 ; N u ; B -1 -15 569 439 ;
|
||||
C 118 ; WX 600 ; N v ; B -1 0 601 439 ;
|
||||
C 119 ; WX 600 ; N w ; B -18 0 618 439 ;
|
||||
C 120 ; WX 600 ; N x ; B 6 0 594 439 ;
|
||||
C 121 ; WX 600 ; N y ; B -4 -142 601 439 ;
|
||||
C 122 ; WX 600 ; N z ; B 81 0 520 439 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ;
|
||||
C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ;
|
||||
C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 25 -60 576 661 ;
|
||||
C 165 ; WX 600 ; N yen ; B 10 0 590 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B -30 -131 572 616 ;
|
||||
C 167 ; WX 600 ; N section ; B 83 -70 517 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 54 49 546 517 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 227 277 373 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ;
|
||||
C 170 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 12 0 593 626 ;
|
||||
C -1 ; WX 600 ; N fl ; B 12 0 593 626 ;
|
||||
C 150 ; WX 600 ; N endash ; B 65 203 535 313 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 106 -70 494 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 196 165 404 351 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 140 132 460 430 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 61 277 525 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B -113 -15 713 616 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ;
|
||||
C 96 ; WX 600 ; N grave ; B 132 508 395 661 ;
|
||||
C 180 ; WX 600 ; N acute ; B 205 508 468 661 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 103 483 497 657 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 89 493 512 636 ;
|
||||
C 175 ; WX 600 ; N macron ; B 88 505 512 585 ;
|
||||
C -1 ; WX 600 ; N breve ; B 83 468 517 631 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 230 498 370 638 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 128 498 472 638 ;
|
||||
C -1 ; WX 600 ; N ring ; B 198 481 402 678 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 205 -206 387 0 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 169 -199 400 0 ;
|
||||
C -1 ; WX 600 ; N caron ; B 103 493 497 667 ;
|
||||
C 151 ; WX 600 ; N emdash ; B -10 203 610 313 ;
|
||||
C 198 ; WX 600 ; N AE ; B -29 0 602 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 39 0 578 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 22 -22 578 584 ;
|
||||
C 140 ; WX 600 ; N OE ; B -25 0 595 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B -4 -15 601 454 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 77 0 523 439 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 77 0 523 626 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 30 -24 570 463 ;
|
||||
C 156 ; WX 600 ; N oe ; B -18 -15 611 454 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 22 -15 596 626 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 77 0 523 761 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 40 -15 563 661 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ;
|
||||
C 247 ; WX 600 ; N divide ; B 71 16 529 500 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 12 0 589 784 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 35 -15 570 661 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ;
|
||||
C 253 ; WX 600 ; N yacute ; B -4 -142 601 661 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 4 -18 596 784 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 25 0 560 761 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ;
|
||||
C 229 ; WX 600 ; N aring ; B 35 -15 570 678 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 35 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 35 -15 570 636 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 68 -17 535 667 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 77 0 523 661 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 48 0 557 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ;
|
||||
C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 138 222 433 616 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 22 -18 578 784 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B -9 0 609 784 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 81 39 520 478 ;
|
||||
C 250 ; WX 600 ; N uacute ; B -1 -15 569 661 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 73 0 523 657 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 35 -15 570 638 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 40 -15 563 638 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ;
|
||||
C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 77 0 523 784 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 71 24 529 515 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 25 0 560 784 ;
|
||||
C -1 ; WX 600 ; N racute ; B 47 0 580 661 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 62 0 539 790 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 30 0 594 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B -9 0 609 784 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B -9 0 609 761 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 40 -15 563 661 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 22 -18 578 784 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 30 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 77 0 523 618 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -14 -142 570 626 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 143 230 436 616 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ;
|
||||
C 181 ; WX 600 ; N mu ; B -1 -142 569 439 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 77 0 523 661 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B -47 -60 648 661 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ;
|
||||
C 153 ; WX 600 ; N trademark ; B -9 230 749 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 77 0 523 784 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B -47 -60 648 661 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 18 0 592 636 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 25 0 560 784 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B -56 -60 656 661 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 47 -22 553 790 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ;
|
||||
C 176 ; WX 600 ; N degree ; B 86 243 474 616 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 30 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B -1 -15 569 661 ;
|
||||
C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 30 -15 570 636 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B -9 0 609 759 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B -9 0 609 801 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 22 -18 578 759 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ;
|
||||
C -1 ; WX 600 ; N minus ; B 71 203 529 313 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 71 103 529 413 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 30 -15 570 638 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B -1 -15 569 638 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ;
|
||||
C 240 ; WX 600 ; N eth ; B 58 -27 543 626 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 81 0 520 667 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 153 230 447 616 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
344
pdf/lib/fonts/Courier-BoldOblique.afm
Executable file
344
pdf/lib/fonts/Courier-BoldOblique.afm
Executable file
@@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Mon Jun 23 16:28:46 0:00:00
|
||||
Comment UniqueID 43049
|
||||
Comment VMusage 17529 79244
|
||||
FontName Courier-BoldOblique
|
||||
FullName Courier Bold Oblique
|
||||
FamilyName Courier
|
||||
Weight Bold
|
||||
ItalicAngle -12
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -57 -250 869 801
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 3
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 439
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 84
|
||||
StdVW 106
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ;
|
||||
C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 229 277 543 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 179 219 598 601 ;
|
||||
C 43 ; WX 600 ; N plus ; B 114 39 596 478 ;
|
||||
C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 143 203 567 313 ;
|
||||
C 46 ; WX 600 ; N period ; B 206 -15 427 171 ;
|
||||
C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ;
|
||||
C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ;
|
||||
C 49 ; WX 600 ; N one ; B 93 0 562 616 ;
|
||||
C 50 ; WX 600 ; N two ; B 61 0 594 616 ;
|
||||
C 51 ; WX 600 ; N three ; B 71 -15 571 616 ;
|
||||
C 52 ; WX 600 ; N four ; B 81 0 559 616 ;
|
||||
C 53 ; WX 600 ; N five ; B 77 -15 621 601 ;
|
||||
C 54 ; WX 600 ; N six ; B 135 -15 652 616 ;
|
||||
C 55 ; WX 600 ; N seven ; B 147 0 622 601 ;
|
||||
C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ;
|
||||
C 57 ; WX 600 ; N nine ; B 75 -15 592 616 ;
|
||||
C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ;
|
||||
C 60 ; WX 600 ; N less ; B 120 15 613 501 ;
|
||||
C 61 ; WX 600 ; N equal ; B 96 118 614 398 ;
|
||||
C 62 ; WX 600 ; N greater ; B 97 15 589 501 ;
|
||||
C 63 ; WX 600 ; N question ; B 183 -14 592 580 ;
|
||||
C 64 ; WX 600 ; N at ; B 65 -15 642 616 ;
|
||||
C 65 ; WX 600 ; N A ; B -9 0 632 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 30 0 630 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 74 -18 675 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 30 0 664 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 25 0 670 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 39 0 684 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 74 -18 675 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 20 0 700 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 77 0 643 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 58 -18 721 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 21 0 692 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 39 0 636 562 ;
|
||||
C 77 ; WX 600 ; N M ; B -2 0 722 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 8 -12 730 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 74 -18 645 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 48 0 643 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 24 0 617 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 54 -22 673 582 ;
|
||||
C 84 ; WX 600 ; N T ; B 86 0 679 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 101 -18 716 562 ;
|
||||
C 86 ; WX 600 ; N V ; B 84 0 733 562 ;
|
||||
C 87 ; WX 600 ; N W ; B 79 0 738 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 12 0 690 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 109 0 709 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 62 0 637 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ;
|
||||
C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 297 277 487 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 61 -15 593 454 ;
|
||||
C 98 ; WX 600 ; N b ; B 13 -15 636 626 ;
|
||||
C 99 ; WX 600 ; N c ; B 81 -15 631 459 ;
|
||||
C 100 ; WX 600 ; N d ; B 60 -15 645 626 ;
|
||||
C 101 ; WX 600 ; N e ; B 81 -15 605 454 ;
|
||||
C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 40 -146 674 454 ;
|
||||
C 104 ; WX 600 ; N h ; B 18 0 615 626 ;
|
||||
C 105 ; WX 600 ; N i ; B 77 0 546 658 ;
|
||||
C 106 ; WX 600 ; N j ; B 36 -146 580 658 ;
|
||||
C 107 ; WX 600 ; N k ; B 33 0 643 626 ;
|
||||
C 108 ; WX 600 ; N l ; B 77 0 546 626 ;
|
||||
C 109 ; WX 600 ; N m ; B -22 0 649 454 ;
|
||||
C 110 ; WX 600 ; N n ; B 18 0 615 454 ;
|
||||
C 111 ; WX 600 ; N o ; B 71 -15 622 454 ;
|
||||
C 112 ; WX 600 ; N p ; B -32 -142 622 454 ;
|
||||
C 113 ; WX 600 ; N q ; B 60 -142 685 454 ;
|
||||
C 114 ; WX 600 ; N r ; B 47 0 655 454 ;
|
||||
C 115 ; WX 600 ; N s ; B 66 -17 608 459 ;
|
||||
C 116 ; WX 600 ; N t ; B 118 -15 567 562 ;
|
||||
C 117 ; WX 600 ; N u ; B 70 -15 592 439 ;
|
||||
C 118 ; WX 600 ; N v ; B 70 0 695 439 ;
|
||||
C 119 ; WX 600 ; N w ; B 53 0 712 439 ;
|
||||
C 120 ; WX 600 ; N x ; B 6 0 671 439 ;
|
||||
C 121 ; WX 600 ; N y ; B -21 -142 695 439 ;
|
||||
C 122 ; WX 600 ; N z ; B 81 0 614 439 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ;
|
||||
C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ;
|
||||
C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 22 -60 708 661 ;
|
||||
C 165 ; WX 600 ; N yen ; B 98 0 710 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B -57 -131 702 616 ;
|
||||
C 167 ; WX 600 ; N section ; B 74 -70 620 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 77 49 644 517 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 303 277 493 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ;
|
||||
C 170 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 12 0 644 626 ;
|
||||
C -1 ; WX 600 ; N fl ; B 12 0 644 626 ;
|
||||
C 150 ; WX 600 ; N endash ; B 108 203 602 313 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 175 -70 586 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 248 165 461 351 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 196 132 523 430 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 119 277 645 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B -45 -15 743 616 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ;
|
||||
C 96 ; WX 600 ; N grave ; B 272 508 503 661 ;
|
||||
C 180 ; WX 600 ; N acute ; B 312 508 609 661 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 212 483 607 657 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 199 493 643 636 ;
|
||||
C 175 ; WX 600 ; N macron ; B 195 505 637 585 ;
|
||||
C -1 ; WX 600 ; N breve ; B 217 468 652 631 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 348 498 493 638 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 246 498 595 638 ;
|
||||
C -1 ; WX 600 ; N ring ; B 319 481 528 678 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 168 -206 368 0 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 143 -199 367 0 ;
|
||||
C -1 ; WX 600 ; N caron ; B 238 493 633 667 ;
|
||||
C 151 ; WX 600 ; N emdash ; B 33 203 677 313 ;
|
||||
C 198 ; WX 600 ; N AE ; B -29 0 708 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 39 0 636 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 48 -22 673 584 ;
|
||||
C 140 ; WX 600 ; N OE ; B 26 0 701 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B 21 -15 652 454 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 77 0 546 439 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 77 0 587 626 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 54 -24 638 463 ;
|
||||
C 156 ; WX 600 ; N oe ; B 18 -15 662 454 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 22 -15 629 626 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 77 0 643 761 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 81 -15 609 661 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ;
|
||||
C 247 ; WX 600 ; N divide ; B 114 16 596 500 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 109 0 709 784 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 61 -15 609 661 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ;
|
||||
C 253 ; WX 600 ; N yacute ; B -21 -142 695 661 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 101 -18 716 784 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 25 0 670 761 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ;
|
||||
C 229 ; WX 600 ; N aring ; B 61 -15 593 678 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 61 -15 593 661 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 61 -15 643 636 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 66 -17 633 667 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 77 0 609 661 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 48 0 620 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ;
|
||||
C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 193 222 526 616 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 74 -18 645 784 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B -9 0 632 784 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 104 39 606 478 ;
|
||||
C 250 ; WX 600 ; N uacute ; B 70 -15 599 661 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 77 0 577 657 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 61 -15 595 638 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 81 -15 605 638 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ;
|
||||
C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 77 0 643 784 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 76 24 614 515 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 25 0 670 784 ;
|
||||
C -1 ; WX 600 ; N racute ; B 47 0 655 661 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 62 0 659 790 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 30 0 664 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B -9 0 655 784 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B -9 0 632 761 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 81 -15 605 661 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 74 -18 645 784 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 71 -15 649 661 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 77 0 561 618 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -32 -142 622 626 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 191 230 542 616 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ;
|
||||
C 181 ; WX 600 ; N mu ; B 49 -142 592 439 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 77 0 546 661 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B 8 -60 699 661 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ;
|
||||
C 153 ; WX 600 ; N trademark ; B 86 230 869 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 77 0 643 784 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B 22 -60 716 661 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 18 0 643 636 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 25 0 670 784 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B 13 -60 707 661 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 54 -22 689 790 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ;
|
||||
C 176 ; WX 600 ; N degree ; B 173 243 570 616 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 71 -15 622 661 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B 70 -15 592 661 ;
|
||||
C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 71 -15 643 636 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B -9 0 669 759 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B -9 0 632 801 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 74 -18 669 759 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ;
|
||||
C -1 ; WX 600 ; N minus ; B 114 203 596 313 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 135 103 617 413 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 71 -15 622 638 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B 70 -15 595 638 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ;
|
||||
C 240 ; WX 600 ; N eth ; B 93 -27 661 626 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 81 0 643 667 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 212 230 514 616 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
344
pdf/lib/fonts/Courier-Oblique.afm
Executable file
344
pdf/lib/fonts/Courier-Oblique.afm
Executable file
@@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Thu May 0:00:00 17:37:52 1997
|
||||
Comment UniqueID 43051
|
||||
Comment VMusage 16248 75829
|
||||
FontName Courier-Oblique
|
||||
FullName Courier Oblique
|
||||
FamilyName Courier
|
||||
Weight Medium
|
||||
ItalicAngle -12
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -27 -250 849 805
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 003.000
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 426
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 51
|
||||
StdVW 51
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ;
|
||||
C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 283 328 495 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ;
|
||||
C 43 ; WX 600 ; N plus ; B 129 44 580 470 ;
|
||||
C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 152 231 558 285 ;
|
||||
C 46 ; WX 600 ; N period ; B 238 -15 382 109 ;
|
||||
C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ;
|
||||
C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ;
|
||||
C 49 ; WX 600 ; N one ; B 98 0 515 622 ;
|
||||
C 50 ; WX 600 ; N two ; B 70 0 568 622 ;
|
||||
C 51 ; WX 600 ; N three ; B 82 -15 538 622 ;
|
||||
C 52 ; WX 600 ; N four ; B 108 0 541 622 ;
|
||||
C 53 ; WX 600 ; N five ; B 99 -15 589 607 ;
|
||||
C 54 ; WX 600 ; N six ; B 155 -15 629 622 ;
|
||||
C 55 ; WX 600 ; N seven ; B 182 0 612 607 ;
|
||||
C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ;
|
||||
C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ;
|
||||
C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ;
|
||||
C 60 ; WX 600 ; N less ; B 96 42 610 472 ;
|
||||
C 61 ; WX 600 ; N equal ; B 109 138 600 376 ;
|
||||
C 62 ; WX 600 ; N greater ; B 85 42 599 472 ;
|
||||
C 63 ; WX 600 ; N question ; B 222 -15 583 572 ;
|
||||
C 64 ; WX 600 ; N at ; B 127 -15 582 622 ;
|
||||
C 65 ; WX 600 ; N A ; B 3 0 607 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 43 0 616 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 93 -18 655 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 43 0 645 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 53 0 660 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 53 0 660 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 83 -18 645 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 32 0 687 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 96 0 623 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 52 -18 685 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 38 0 671 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 47 0 607 562 ;
|
||||
C 77 ; WX 600 ; N M ; B 4 0 715 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 7 -13 712 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 94 -18 625 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 79 0 644 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 38 0 598 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 76 -20 650 580 ;
|
||||
C 84 ; WX 600 ; N T ; B 108 0 665 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 125 -18 702 562 ;
|
||||
C 86 ; WX 600 ; N V ; B 105 -13 723 562 ;
|
||||
C 87 ; WX 600 ; N W ; B 106 -13 722 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 23 0 675 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 133 0 695 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 86 0 610 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ;
|
||||
C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 343 328 457 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 76 -15 569 441 ;
|
||||
C 98 ; WX 600 ; N b ; B 29 -15 625 629 ;
|
||||
C 99 ; WX 600 ; N c ; B 106 -15 608 441 ;
|
||||
C 100 ; WX 600 ; N d ; B 85 -15 640 629 ;
|
||||
C 101 ; WX 600 ; N e ; B 106 -15 598 441 ;
|
||||
C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 61 -157 657 441 ;
|
||||
C 104 ; WX 600 ; N h ; B 33 0 592 629 ;
|
||||
C 105 ; WX 600 ; N i ; B 95 0 515 657 ;
|
||||
C 106 ; WX 600 ; N j ; B 52 -157 550 657 ;
|
||||
C 107 ; WX 600 ; N k ; B 58 0 633 629 ;
|
||||
C 108 ; WX 600 ; N l ; B 95 0 515 629 ;
|
||||
C 109 ; WX 600 ; N m ; B -5 0 615 441 ;
|
||||
C 110 ; WX 600 ; N n ; B 26 0 585 441 ;
|
||||
C 111 ; WX 600 ; N o ; B 102 -15 588 441 ;
|
||||
C 112 ; WX 600 ; N p ; B -24 -157 605 441 ;
|
||||
C 113 ; WX 600 ; N q ; B 85 -157 682 441 ;
|
||||
C 114 ; WX 600 ; N r ; B 60 0 636 441 ;
|
||||
C 115 ; WX 600 ; N s ; B 78 -15 584 441 ;
|
||||
C 116 ; WX 600 ; N t ; B 167 -15 561 561 ;
|
||||
C 117 ; WX 600 ; N u ; B 101 -15 572 426 ;
|
||||
C 118 ; WX 600 ; N v ; B 90 -10 681 426 ;
|
||||
C 119 ; WX 600 ; N w ; B 76 -10 695 426 ;
|
||||
C 120 ; WX 600 ; N x ; B 20 0 655 426 ;
|
||||
C 121 ; WX 600 ; N y ; B -4 -157 683 426 ;
|
||||
C 122 ; WX 600 ; N z ; B 99 0 593 426 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ;
|
||||
C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ;
|
||||
C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 84 -57 646 665 ;
|
||||
C 165 ; WX 600 ; N yen ; B 120 0 693 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B -26 -143 671 622 ;
|
||||
C 167 ; WX 600 ; N section ; B 104 -78 590 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 94 58 628 506 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 345 328 460 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ;
|
||||
C 170 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 3 0 619 629 ;
|
||||
C -1 ; WX 600 ; N fl ; B 3 0 619 629 ;
|
||||
C 150 ; WX 600 ; N endash ; B 124 231 586 285 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 217 -78 546 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 275 189 434 327 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 224 130 485 383 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 213 328 576 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B 59 -15 627 622 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ;
|
||||
C 96 ; WX 600 ; N grave ; B 294 497 484 672 ;
|
||||
C 180 ; WX 600 ; N acute ; B 348 497 612 672 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 229 477 581 654 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 212 489 629 606 ;
|
||||
C 175 ; WX 600 ; N macron ; B 232 525 600 565 ;
|
||||
C -1 ; WX 600 ; N breve ; B 279 501 576 609 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 373 537 478 640 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 272 537 579 640 ;
|
||||
C -1 ; WX 600 ; N ring ; B 332 463 500 627 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 197 -151 344 10 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 189 -172 377 4 ;
|
||||
C -1 ; WX 600 ; N caron ; B 262 492 614 669 ;
|
||||
C 151 ; WX 600 ; N emdash ; B 49 231 661 285 ;
|
||||
C 198 ; WX 600 ; N AE ; B 3 0 655 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 47 0 607 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 94 -80 625 629 ;
|
||||
C 140 ; WX 600 ; N OE ; B 59 0 672 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B 41 -15 626 441 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 95 0 515 426 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 95 0 587 629 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 102 -80 588 506 ;
|
||||
C 156 ; WX 600 ; N oe ; B 54 -15 615 441 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 48 -15 617 629 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 96 0 623 753 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 106 -15 612 672 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ;
|
||||
C 247 ; WX 600 ; N divide ; B 136 48 573 467 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 133 0 695 805 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 76 -15 612 672 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ;
|
||||
C 253 ; WX 600 ; N yacute ; B -4 -157 683 672 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 125 -18 702 805 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 53 0 660 753 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ;
|
||||
C 229 ; WX 600 ; N aring ; B 76 -15 569 627 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 76 -15 569 672 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 76 -15 629 606 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 78 -15 614 669 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 95 0 612 672 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 79 0 606 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ;
|
||||
C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 213 240 501 622 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 94 -18 625 805 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B 3 0 607 805 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 103 43 607 470 ;
|
||||
C 250 ; WX 600 ; N uacute ; B 101 -15 602 672 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 95 0 551 654 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 76 -15 575 620 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 106 -15 598 620 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ;
|
||||
C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 96 0 640 805 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 96 44 594 558 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 53 0 660 805 ;
|
||||
C -1 ; WX 600 ; N racute ; B 60 0 636 672 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 86 0 642 802 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 43 0 645 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B 3 0 660 805 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B 3 0 607 753 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 106 -15 598 672 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 94 -18 640 805 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 102 -15 612 672 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 95 0 545 620 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -24 -157 605 629 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 230 249 535 622 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ;
|
||||
C 181 ; WX 600 ; N mu ; B 72 -157 572 426 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 95 0 515 672 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B 73 -56 659 666 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ;
|
||||
C 153 ; WX 600 ; N trademark ; B 75 263 742 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 96 0 623 805 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B 65 -57 669 665 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 26 0 629 606 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 53 0 670 805 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B 65 -57 674 665 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 76 -20 672 802 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ;
|
||||
C 176 ; WX 600 ; N degree ; B 214 269 576 622 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 102 -15 588 672 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B 101 -15 572 672 ;
|
||||
C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 102 -15 629 606 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B 3 0 655 729 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B 3 0 607 750 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 94 -18 655 729 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ;
|
||||
C -1 ; WX 600 ; N minus ; B 129 232 580 283 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 155 108 591 369 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 102 -15 588 620 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B 101 -15 575 620 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ;
|
||||
C 240 ; WX 600 ; N eth ; B 102 -15 639 629 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 99 0 624 669 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 231 249 491 622 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
344
pdf/lib/fonts/Courier.afm
Executable file
344
pdf/lib/fonts/Courier.afm
Executable file
@@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Thu May 1 17:27:09 1997
|
||||
Comment UniqueID 43050
|
||||
Comment VMusage 39754 50779
|
||||
FontName Courier
|
||||
FullName Courier
|
||||
FamilyName Courier
|
||||
Weight Medium
|
||||
ItalicAngle 0
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -23 -250 715 805
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 003.000
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 426
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 51
|
||||
StdVW 51
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ;
|
||||
C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 213 328 376 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ;
|
||||
C 43 ; WX 600 ; N plus ; B 80 44 520 470 ;
|
||||
C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 103 231 497 285 ;
|
||||
C 46 ; WX 600 ; N period ; B 229 -15 371 109 ;
|
||||
C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ;
|
||||
C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ;
|
||||
C 49 ; WX 600 ; N one ; B 96 0 505 622 ;
|
||||
C 50 ; WX 600 ; N two ; B 70 0 471 622 ;
|
||||
C 51 ; WX 600 ; N three ; B 75 -15 466 622 ;
|
||||
C 52 ; WX 600 ; N four ; B 78 0 500 622 ;
|
||||
C 53 ; WX 600 ; N five ; B 92 -15 497 607 ;
|
||||
C 54 ; WX 600 ; N six ; B 111 -15 497 622 ;
|
||||
C 55 ; WX 600 ; N seven ; B 82 0 483 607 ;
|
||||
C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ;
|
||||
C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ;
|
||||
C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ;
|
||||
C 60 ; WX 600 ; N less ; B 41 42 519 472 ;
|
||||
C 61 ; WX 600 ; N equal ; B 80 138 520 376 ;
|
||||
C 62 ; WX 600 ; N greater ; B 66 42 544 472 ;
|
||||
C 63 ; WX 600 ; N question ; B 129 -15 492 572 ;
|
||||
C 64 ; WX 600 ; N at ; B 77 -15 533 622 ;
|
||||
C 65 ; WX 600 ; N A ; B 3 0 597 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 43 0 559 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 41 -18 540 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 43 0 574 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 53 0 550 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 53 0 545 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 31 -18 575 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 32 0 568 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 96 0 504 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 34 -18 566 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 38 0 582 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 47 0 554 562 ;
|
||||
C 77 ; WX 600 ; N M ; B 4 0 596 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 7 -13 593 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 43 -18 557 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 79 0 558 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 38 0 588 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 72 -20 529 580 ;
|
||||
C 84 ; WX 600 ; N T ; B 38 0 563 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 17 -18 583 562 ;
|
||||
C 86 ; WX 600 ; N V ; B -4 -13 604 562 ;
|
||||
C 87 ; WX 600 ; N W ; B -3 -13 603 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 23 0 577 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 24 0 576 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 86 0 514 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ;
|
||||
C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 224 328 387 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 53 -15 559 441 ;
|
||||
C 98 ; WX 600 ; N b ; B 14 -15 575 629 ;
|
||||
C 99 ; WX 600 ; N c ; B 66 -15 529 441 ;
|
||||
C 100 ; WX 600 ; N d ; B 45 -15 591 629 ;
|
||||
C 101 ; WX 600 ; N e ; B 66 -15 548 441 ;
|
||||
C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 45 -157 566 441 ;
|
||||
C 104 ; WX 600 ; N h ; B 18 0 582 629 ;
|
||||
C 105 ; WX 600 ; N i ; B 95 0 505 657 ;
|
||||
C 106 ; WX 600 ; N j ; B 82 -157 410 657 ;
|
||||
C 107 ; WX 600 ; N k ; B 43 0 580 629 ;
|
||||
C 108 ; WX 600 ; N l ; B 95 0 505 629 ;
|
||||
C 109 ; WX 600 ; N m ; B -5 0 605 441 ;
|
||||
C 110 ; WX 600 ; N n ; B 26 0 575 441 ;
|
||||
C 111 ; WX 600 ; N o ; B 62 -15 538 441 ;
|
||||
C 112 ; WX 600 ; N p ; B 9 -157 555 441 ;
|
||||
C 113 ; WX 600 ; N q ; B 45 -157 591 441 ;
|
||||
C 114 ; WX 600 ; N r ; B 60 0 559 441 ;
|
||||
C 115 ; WX 600 ; N s ; B 80 -15 513 441 ;
|
||||
C 116 ; WX 600 ; N t ; B 87 -15 530 561 ;
|
||||
C 117 ; WX 600 ; N u ; B 21 -15 562 426 ;
|
||||
C 118 ; WX 600 ; N v ; B 10 -10 590 426 ;
|
||||
C 119 ; WX 600 ; N w ; B -4 -10 604 426 ;
|
||||
C 120 ; WX 600 ; N x ; B 20 0 580 426 ;
|
||||
C 121 ; WX 600 ; N y ; B 7 -157 592 426 ;
|
||||
C 122 ; WX 600 ; N z ; B 99 0 502 426 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ;
|
||||
C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ;
|
||||
C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 92 -57 509 665 ;
|
||||
C 165 ; WX 600 ; N yen ; B 26 0 574 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B 4 -143 539 622 ;
|
||||
C 167 ; WX 600 ; N section ; B 113 -78 488 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 73 58 527 506 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 259 328 341 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ;
|
||||
C 170 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 3 0 597 629 ;
|
||||
C -1 ; WX 600 ; N fl ; B 3 0 597 629 ;
|
||||
C 150 ; WX 600 ; N endash ; B 75 231 525 285 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 141 -78 459 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 222 189 378 327 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 172 130 428 383 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 143 328 457 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B 3 -15 600 622 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ;
|
||||
C 96 ; WX 600 ; N grave ; B 151 497 378 672 ;
|
||||
C 180 ; WX 600 ; N acute ; B 242 497 469 672 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 124 477 476 654 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 105 489 503 606 ;
|
||||
C 175 ; WX 600 ; N macron ; B 120 525 480 565 ;
|
||||
C -1 ; WX 600 ; N breve ; B 153 501 447 609 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 249 537 352 640 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 148 537 453 640 ;
|
||||
C -1 ; WX 600 ; N ring ; B 218 463 382 627 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 224 -151 362 10 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 211 -172 407 4 ;
|
||||
C -1 ; WX 600 ; N caron ; B 124 492 476 669 ;
|
||||
C 151 ; WX 600 ; N emdash ; B 0 231 600 285 ;
|
||||
C 198 ; WX 600 ; N AE ; B 3 0 550 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 47 0 554 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 43 -80 557 629 ;
|
||||
C 140 ; WX 600 ; N OE ; B 7 0 567 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B 19 -15 570 441 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 95 0 505 426 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 95 0 505 629 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 62 -80 538 506 ;
|
||||
C 156 ; WX 600 ; N oe ; B 19 -15 559 441 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 48 -15 588 629 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 96 0 504 753 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 66 -15 548 672 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ;
|
||||
C 247 ; WX 600 ; N divide ; B 87 48 513 467 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 24 0 576 805 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 53 -15 559 672 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ;
|
||||
C 253 ; WX 600 ; N yacute ; B 7 -157 592 672 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 17 -18 583 805 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 53 0 550 753 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ;
|
||||
C 229 ; WX 600 ; N aring ; B 53 -15 559 627 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 53 -15 559 672 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 53 -15 559 606 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 80 -15 513 669 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 95 0 505 672 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 79 0 538 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ;
|
||||
C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 155 240 406 622 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 43 -18 557 805 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B 3 0 597 805 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 87 43 515 470 ;
|
||||
C 250 ; WX 600 ; N uacute ; B 21 -15 562 672 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 94 0 505 654 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 53 -15 559 620 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 66 -15 548 620 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ;
|
||||
C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 96 0 504 805 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 87 44 513 558 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 53 0 550 805 ;
|
||||
C -1 ; WX 600 ; N racute ; B 60 0 559 672 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 86 0 514 802 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 30 0 574 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B 3 0 597 805 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B 3 0 597 753 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 66 -15 548 672 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 43 -18 557 805 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 62 -15 538 672 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 95 0 505 620 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -6 -157 555 629 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 177 249 424 622 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ;
|
||||
C 181 ; WX 600 ; N mu ; B 21 -157 562 426 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 95 0 505 672 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B 8 -56 593 666 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ;
|
||||
C 153 ; WX 600 ; N trademark ; B -23 263 623 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 96 0 504 805 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B 0 -57 611 665 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 26 0 575 606 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 53 0 550 805 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B 0 -57 600 665 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 72 -20 529 802 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ;
|
||||
C 176 ; WX 600 ; N degree ; B 123 269 477 622 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 62 -15 538 672 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B 21 -15 562 672 ;
|
||||
C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 62 -15 538 606 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B 3 0 597 729 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B 3 0 597 750 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 43 -18 557 729 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ;
|
||||
C -1 ; WX 600 ; N minus ; B 80 232 520 283 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 87 108 513 369 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 62 -15 538 620 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B 21 -15 562 620 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ;
|
||||
C 240 ; WX 600 ; N eth ; B 62 -15 538 629 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 99 0 502 669 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 172 249 428 622 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
2829
pdf/lib/fonts/Helvetica-Bold.afm
Executable file
2829
pdf/lib/fonts/Helvetica-Bold.afm
Executable file
File diff suppressed because it is too large
Load Diff
570
pdf/lib/fonts/Helvetica-Bold.afm.php
Executable file
570
pdf/lib/fonts/Helvetica-Bold.afm.php
Executable file
@@ -0,0 +1,570 @@
|
||||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
170 => 'ordfeminine',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Helvetica-Bold',
|
||||
'FullName' => 'Helvetica Bold',
|
||||
'FamilyName' => 'Helvetica',
|
||||
'Weight' => 'Bold',
|
||||
'ItalicAngle' => '0',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-170',
|
||||
1 => '-228',
|
||||
2 => '1003',
|
||||
3 => '962',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '718',
|
||||
'XHeight' => '532',
|
||||
'Ascender' => '718',
|
||||
'Descender' => '-207',
|
||||
'StdHW' => '118',
|
||||
'StdVW' => '140',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 278,
|
||||
160 => 278,
|
||||
33 => 333,
|
||||
34 => 474,
|
||||
35 => 556,
|
||||
36 => 556,
|
||||
37 => 889,
|
||||
38 => 722,
|
||||
146 => 278,
|
||||
40 => 333,
|
||||
41 => 333,
|
||||
42 => 389,
|
||||
43 => 584,
|
||||
44 => 278,
|
||||
45 => 333,
|
||||
173 => 333,
|
||||
46 => 278,
|
||||
47 => 278,
|
||||
48 => 556,
|
||||
49 => 556,
|
||||
50 => 556,
|
||||
51 => 556,
|
||||
52 => 556,
|
||||
53 => 556,
|
||||
54 => 556,
|
||||
55 => 556,
|
||||
56 => 556,
|
||||
57 => 556,
|
||||
58 => 333,
|
||||
59 => 333,
|
||||
60 => 584,
|
||||
61 => 584,
|
||||
62 => 584,
|
||||
63 => 611,
|
||||
64 => 975,
|
||||
65 => 722,
|
||||
66 => 722,
|
||||
67 => 722,
|
||||
68 => 722,
|
||||
69 => 667,
|
||||
70 => 611,
|
||||
71 => 778,
|
||||
72 => 722,
|
||||
73 => 278,
|
||||
74 => 556,
|
||||
75 => 722,
|
||||
76 => 611,
|
||||
77 => 833,
|
||||
78 => 722,
|
||||
79 => 778,
|
||||
80 => 667,
|
||||
81 => 778,
|
||||
82 => 722,
|
||||
83 => 667,
|
||||
84 => 611,
|
||||
85 => 722,
|
||||
86 => 667,
|
||||
87 => 944,
|
||||
88 => 667,
|
||||
89 => 667,
|
||||
90 => 611,
|
||||
91 => 333,
|
||||
92 => 278,
|
||||
93 => 333,
|
||||
94 => 584,
|
||||
95 => 556,
|
||||
145 => 278,
|
||||
97 => 556,
|
||||
98 => 611,
|
||||
99 => 556,
|
||||
100 => 611,
|
||||
101 => 556,
|
||||
102 => 333,
|
||||
103 => 611,
|
||||
104 => 611,
|
||||
105 => 278,
|
||||
106 => 278,
|
||||
107 => 556,
|
||||
108 => 278,
|
||||
109 => 889,
|
||||
110 => 611,
|
||||
111 => 611,
|
||||
112 => 611,
|
||||
113 => 611,
|
||||
114 => 389,
|
||||
115 => 556,
|
||||
116 => 333,
|
||||
117 => 611,
|
||||
118 => 556,
|
||||
119 => 778,
|
||||
120 => 556,
|
||||
121 => 556,
|
||||
122 => 500,
|
||||
123 => 389,
|
||||
124 => 280,
|
||||
125 => 389,
|
||||
126 => 584,
|
||||
161 => 333,
|
||||
162 => 556,
|
||||
163 => 556,
|
||||
'fraction' => 167,
|
||||
165 => 556,
|
||||
131 => 556,
|
||||
167 => 556,
|
||||
164 => 556,
|
||||
39 => 238,
|
||||
147 => 500,
|
||||
170 => 370,
|
||||
139 => 333,
|
||||
155 => 333,
|
||||
'fi' => 611,
|
||||
'fl' => 611,
|
||||
150 => 556,
|
||||
134 => 556,
|
||||
135 => 556,
|
||||
183 => 278,
|
||||
182 => 556,
|
||||
149 => 350,
|
||||
130 => 278,
|
||||
132 => 500,
|
||||
148 => 500,
|
||||
187 => 556,
|
||||
133 => 1000,
|
||||
137 => 1000,
|
||||
191 => 611,
|
||||
96 => 333,
|
||||
180 => 333,
|
||||
136 => 333,
|
||||
152 => 333,
|
||||
175 => 333,
|
||||
'breve' => 333,
|
||||
'dotaccent' => 333,
|
||||
168 => 333,
|
||||
'ring' => 333,
|
||||
184 => 333,
|
||||
'hungarumlaut' => 333,
|
||||
'ogonek' => 333,
|
||||
'caron' => 333,
|
||||
151 => 1000,
|
||||
198 => 1000,
|
||||
'Lslash' => 611,
|
||||
216 => 778,
|
||||
140 => 1000,
|
||||
186 => 365,
|
||||
230 => 889,
|
||||
'dotlessi' => 278,
|
||||
'lslash' => 278,
|
||||
248 => 611,
|
||||
156 => 944,
|
||||
223 => 611,
|
||||
207 => 278,
|
||||
233 => 556,
|
||||
'abreve' => 556,
|
||||
'uhungarumlaut' => 611,
|
||||
'ecaron' => 556,
|
||||
159 => 667,
|
||||
247 => 584,
|
||||
221 => 667,
|
||||
194 => 722,
|
||||
225 => 556,
|
||||
219 => 722,
|
||||
253 => 556,
|
||||
'scommaaccent' => 556,
|
||||
234 => 556,
|
||||
'Uring' => 722,
|
||||
220 => 722,
|
||||
'aogonek' => 556,
|
||||
218 => 722,
|
||||
'uogonek' => 611,
|
||||
203 => 667,
|
||||
'Dcroat' => 722,
|
||||
'commaaccent' => 250,
|
||||
169 => 737,
|
||||
'Emacron' => 667,
|
||||
'ccaron' => 556,
|
||||
229 => 556,
|
||||
'Ncommaaccent' => 722,
|
||||
'lacute' => 278,
|
||||
224 => 556,
|
||||
'Tcommaaccent' => 611,
|
||||
'Cacute' => 722,
|
||||
227 => 556,
|
||||
'Edotaccent' => 667,
|
||||
154 => 556,
|
||||
'scedilla' => 556,
|
||||
237 => 278,
|
||||
'lozenge' => 494,
|
||||
'Rcaron' => 722,
|
||||
'Gcommaaccent' => 778,
|
||||
251 => 611,
|
||||
226 => 556,
|
||||
'Amacron' => 722,
|
||||
'rcaron' => 389,
|
||||
231 => 556,
|
||||
'Zdotaccent' => 611,
|
||||
222 => 667,
|
||||
'Omacron' => 778,
|
||||
'Racute' => 722,
|
||||
'Sacute' => 667,
|
||||
'dcaron' => 743,
|
||||
'Umacron' => 722,
|
||||
'uring' => 611,
|
||||
179 => 333,
|
||||
210 => 778,
|
||||
192 => 722,
|
||||
'Abreve' => 722,
|
||||
215 => 584,
|
||||
250 => 611,
|
||||
'Tcaron' => 611,
|
||||
'partialdiff' => 494,
|
||||
255 => 556,
|
||||
'Nacute' => 722,
|
||||
238 => 278,
|
||||
202 => 667,
|
||||
228 => 556,
|
||||
235 => 556,
|
||||
'cacute' => 556,
|
||||
'nacute' => 611,
|
||||
'umacron' => 611,
|
||||
'Ncaron' => 722,
|
||||
205 => 278,
|
||||
177 => 584,
|
||||
166 => 280,
|
||||
174 => 737,
|
||||
'Gbreve' => 778,
|
||||
'Idotaccent' => 278,
|
||||
'summation' => 600,
|
||||
200 => 667,
|
||||
'racute' => 389,
|
||||
'omacron' => 611,
|
||||
'Zacute' => 611,
|
||||
142 => 611,
|
||||
'greaterequal' => 549,
|
||||
208 => 722,
|
||||
199 => 722,
|
||||
'lcommaaccent' => 278,
|
||||
'tcaron' => 389,
|
||||
'eogonek' => 556,
|
||||
'Uogonek' => 722,
|
||||
193 => 722,
|
||||
196 => 722,
|
||||
232 => 556,
|
||||
'zacute' => 500,
|
||||
'iogonek' => 278,
|
||||
211 => 778,
|
||||
243 => 611,
|
||||
'amacron' => 556,
|
||||
'sacute' => 556,
|
||||
239 => 278,
|
||||
212 => 778,
|
||||
217 => 722,
|
||||
'Delta' => 612,
|
||||
254 => 611,
|
||||
178 => 333,
|
||||
214 => 778,
|
||||
181 => 611,
|
||||
236 => 278,
|
||||
'ohungarumlaut' => 611,
|
||||
'Eogonek' => 667,
|
||||
'dcroat' => 611,
|
||||
190 => 834,
|
||||
'Scedilla' => 667,
|
||||
'lcaron' => 400,
|
||||
'Kcommaaccent' => 722,
|
||||
'Lacute' => 611,
|
||||
153 => 1000,
|
||||
'edotaccent' => 556,
|
||||
204 => 278,
|
||||
'Imacron' => 278,
|
||||
'Lcaron' => 611,
|
||||
189 => 834,
|
||||
'lessequal' => 549,
|
||||
244 => 611,
|
||||
241 => 611,
|
||||
'Uhungarumlaut' => 722,
|
||||
201 => 667,
|
||||
'emacron' => 556,
|
||||
'gbreve' => 611,
|
||||
188 => 834,
|
||||
138 => 667,
|
||||
'Scommaaccent' => 667,
|
||||
'Ohungarumlaut' => 778,
|
||||
176 => 400,
|
||||
242 => 611,
|
||||
'Ccaron' => 722,
|
||||
249 => 611,
|
||||
'radical' => 549,
|
||||
'Dcaron' => 722,
|
||||
'rcommaaccent' => 389,
|
||||
209 => 722,
|
||||
245 => 611,
|
||||
'Rcommaaccent' => 722,
|
||||
'Lcommaaccent' => 611,
|
||||
195 => 722,
|
||||
'Aogonek' => 722,
|
||||
197 => 722,
|
||||
213 => 778,
|
||||
'zdotaccent' => 500,
|
||||
'Ecaron' => 667,
|
||||
'Iogonek' => 278,
|
||||
'kcommaaccent' => 556,
|
||||
'minus' => 584,
|
||||
206 => 278,
|
||||
'ncaron' => 611,
|
||||
'tcommaaccent' => 333,
|
||||
172 => 584,
|
||||
246 => 611,
|
||||
252 => 611,
|
||||
'notequal' => 549,
|
||||
'gcommaaccent' => 611,
|
||||
240 => 611,
|
||||
158 => 500,
|
||||
'ncommaaccent' => 611,
|
||||
185 => 333,
|
||||
'imacron' => 278,
|
||||
128 => 556,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 4,
|
||||
);
|
||||
2829
pdf/lib/fonts/Helvetica-BoldOblique.afm
Executable file
2829
pdf/lib/fonts/Helvetica-BoldOblique.afm
Executable file
File diff suppressed because it is too large
Load Diff
3053
pdf/lib/fonts/Helvetica-Oblique.afm
Executable file
3053
pdf/lib/fonts/Helvetica-Oblique.afm
Executable file
File diff suppressed because it is too large
Load Diff
3053
pdf/lib/fonts/Helvetica.afm
Executable file
3053
pdf/lib/fonts/Helvetica.afm
Executable file
File diff suppressed because it is too large
Load Diff
570
pdf/lib/fonts/Helvetica.afm.php
Executable file
570
pdf/lib/fonts/Helvetica.afm.php
Executable file
@@ -0,0 +1,570 @@
|
||||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
170 => 'ordfeminine',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Helvetica',
|
||||
'FullName' => 'Helvetica',
|
||||
'FamilyName' => 'Helvetica',
|
||||
'Weight' => 'Medium',
|
||||
'ItalicAngle' => '0',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-166',
|
||||
1 => '-225',
|
||||
2 => '1000',
|
||||
3 => '931',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '718',
|
||||
'XHeight' => '523',
|
||||
'Ascender' => '718',
|
||||
'Descender' => '-207',
|
||||
'StdHW' => '76',
|
||||
'StdVW' => '88',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 278,
|
||||
160 => 278,
|
||||
33 => 278,
|
||||
34 => 355,
|
||||
35 => 556,
|
||||
36 => 556,
|
||||
37 => 889,
|
||||
38 => 667,
|
||||
146 => 222,
|
||||
40 => 333,
|
||||
41 => 333,
|
||||
42 => 389,
|
||||
43 => 584,
|
||||
44 => 278,
|
||||
45 => 333,
|
||||
173 => 333,
|
||||
46 => 278,
|
||||
47 => 278,
|
||||
48 => 556,
|
||||
49 => 556,
|
||||
50 => 556,
|
||||
51 => 556,
|
||||
52 => 556,
|
||||
53 => 556,
|
||||
54 => 556,
|
||||
55 => 556,
|
||||
56 => 556,
|
||||
57 => 556,
|
||||
58 => 278,
|
||||
59 => 278,
|
||||
60 => 584,
|
||||
61 => 584,
|
||||
62 => 584,
|
||||
63 => 556,
|
||||
64 => 1015,
|
||||
65 => 667,
|
||||
66 => 667,
|
||||
67 => 722,
|
||||
68 => 722,
|
||||
69 => 667,
|
||||
70 => 611,
|
||||
71 => 778,
|
||||
72 => 722,
|
||||
73 => 278,
|
||||
74 => 500,
|
||||
75 => 667,
|
||||
76 => 556,
|
||||
77 => 833,
|
||||
78 => 722,
|
||||
79 => 778,
|
||||
80 => 667,
|
||||
81 => 778,
|
||||
82 => 722,
|
||||
83 => 667,
|
||||
84 => 611,
|
||||
85 => 722,
|
||||
86 => 667,
|
||||
87 => 944,
|
||||
88 => 667,
|
||||
89 => 667,
|
||||
90 => 611,
|
||||
91 => 278,
|
||||
92 => 278,
|
||||
93 => 278,
|
||||
94 => 469,
|
||||
95 => 556,
|
||||
145 => 222,
|
||||
97 => 556,
|
||||
98 => 556,
|
||||
99 => 500,
|
||||
100 => 556,
|
||||
101 => 556,
|
||||
102 => 278,
|
||||
103 => 556,
|
||||
104 => 556,
|
||||
105 => 222,
|
||||
106 => 222,
|
||||
107 => 500,
|
||||
108 => 222,
|
||||
109 => 833,
|
||||
110 => 556,
|
||||
111 => 556,
|
||||
112 => 556,
|
||||
113 => 556,
|
||||
114 => 333,
|
||||
115 => 500,
|
||||
116 => 278,
|
||||
117 => 556,
|
||||
118 => 500,
|
||||
119 => 722,
|
||||
120 => 500,
|
||||
121 => 500,
|
||||
122 => 500,
|
||||
123 => 334,
|
||||
124 => 260,
|
||||
125 => 334,
|
||||
126 => 584,
|
||||
161 => 333,
|
||||
162 => 556,
|
||||
163 => 556,
|
||||
'fraction' => 167,
|
||||
165 => 556,
|
||||
131 => 556,
|
||||
167 => 556,
|
||||
164 => 556,
|
||||
39 => 191,
|
||||
147 => 333,
|
||||
170 => 370,
|
||||
139 => 333,
|
||||
155 => 333,
|
||||
'fi' => 500,
|
||||
'fl' => 500,
|
||||
150 => 556,
|
||||
134 => 556,
|
||||
135 => 556,
|
||||
183 => 278,
|
||||
182 => 537,
|
||||
149 => 350,
|
||||
130 => 222,
|
||||
132 => 333,
|
||||
148 => 333,
|
||||
187 => 556,
|
||||
133 => 1000,
|
||||
137 => 1000,
|
||||
191 => 611,
|
||||
96 => 333,
|
||||
180 => 333,
|
||||
136 => 333,
|
||||
152 => 333,
|
||||
175 => 333,
|
||||
'breve' => 333,
|
||||
'dotaccent' => 333,
|
||||
168 => 333,
|
||||
'ring' => 333,
|
||||
184 => 333,
|
||||
'hungarumlaut' => 333,
|
||||
'ogonek' => 333,
|
||||
'caron' => 333,
|
||||
151 => 1000,
|
||||
198 => 1000,
|
||||
'Lslash' => 556,
|
||||
216 => 778,
|
||||
140 => 1000,
|
||||
186 => 365,
|
||||
230 => 889,
|
||||
'dotlessi' => 278,
|
||||
'lslash' => 222,
|
||||
248 => 611,
|
||||
156 => 944,
|
||||
223 => 611,
|
||||
207 => 278,
|
||||
233 => 556,
|
||||
'abreve' => 556,
|
||||
'uhungarumlaut' => 556,
|
||||
'ecaron' => 556,
|
||||
159 => 667,
|
||||
247 => 584,
|
||||
221 => 667,
|
||||
194 => 667,
|
||||
225 => 556,
|
||||
219 => 722,
|
||||
253 => 500,
|
||||
'scommaaccent' => 500,
|
||||
234 => 556,
|
||||
'Uring' => 722,
|
||||
220 => 722,
|
||||
'aogonek' => 556,
|
||||
218 => 722,
|
||||
'uogonek' => 556,
|
||||
203 => 667,
|
||||
'Dcroat' => 722,
|
||||
'commaaccent' => 250,
|
||||
169 => 737,
|
||||
'Emacron' => 667,
|
||||
'ccaron' => 500,
|
||||
229 => 556,
|
||||
'Ncommaaccent' => 722,
|
||||
'lacute' => 222,
|
||||
224 => 556,
|
||||
'Tcommaaccent' => 611,
|
||||
'Cacute' => 722,
|
||||
227 => 556,
|
||||
'Edotaccent' => 667,
|
||||
154 => 500,
|
||||
'scedilla' => 500,
|
||||
237 => 278,
|
||||
'lozenge' => 471,
|
||||
'Rcaron' => 722,
|
||||
'Gcommaaccent' => 778,
|
||||
251 => 556,
|
||||
226 => 556,
|
||||
'Amacron' => 667,
|
||||
'rcaron' => 333,
|
||||
231 => 500,
|
||||
'Zdotaccent' => 611,
|
||||
222 => 667,
|
||||
'Omacron' => 778,
|
||||
'Racute' => 722,
|
||||
'Sacute' => 667,
|
||||
'dcaron' => 643,
|
||||
'Umacron' => 722,
|
||||
'uring' => 556,
|
||||
179 => 333,
|
||||
210 => 778,
|
||||
192 => 667,
|
||||
'Abreve' => 667,
|
||||
215 => 584,
|
||||
250 => 556,
|
||||
'Tcaron' => 611,
|
||||
'partialdiff' => 476,
|
||||
255 => 500,
|
||||
'Nacute' => 722,
|
||||
238 => 278,
|
||||
202 => 667,
|
||||
228 => 556,
|
||||
235 => 556,
|
||||
'cacute' => 500,
|
||||
'nacute' => 556,
|
||||
'umacron' => 556,
|
||||
'Ncaron' => 722,
|
||||
205 => 278,
|
||||
177 => 584,
|
||||
166 => 260,
|
||||
174 => 737,
|
||||
'Gbreve' => 778,
|
||||
'Idotaccent' => 278,
|
||||
'summation' => 600,
|
||||
200 => 667,
|
||||
'racute' => 333,
|
||||
'omacron' => 556,
|
||||
'Zacute' => 611,
|
||||
142 => 611,
|
||||
'greaterequal' => 549,
|
||||
208 => 722,
|
||||
199 => 722,
|
||||
'lcommaaccent' => 222,
|
||||
'tcaron' => 317,
|
||||
'eogonek' => 556,
|
||||
'Uogonek' => 722,
|
||||
193 => 667,
|
||||
196 => 667,
|
||||
232 => 556,
|
||||
'zacute' => 500,
|
||||
'iogonek' => 222,
|
||||
211 => 778,
|
||||
243 => 556,
|
||||
'amacron' => 556,
|
||||
'sacute' => 500,
|
||||
239 => 278,
|
||||
212 => 778,
|
||||
217 => 722,
|
||||
'Delta' => 612,
|
||||
254 => 556,
|
||||
178 => 333,
|
||||
214 => 778,
|
||||
181 => 556,
|
||||
236 => 278,
|
||||
'ohungarumlaut' => 556,
|
||||
'Eogonek' => 667,
|
||||
'dcroat' => 556,
|
||||
190 => 834,
|
||||
'Scedilla' => 667,
|
||||
'lcaron' => 299,
|
||||
'Kcommaaccent' => 667,
|
||||
'Lacute' => 556,
|
||||
153 => 1000,
|
||||
'edotaccent' => 556,
|
||||
204 => 278,
|
||||
'Imacron' => 278,
|
||||
'Lcaron' => 556,
|
||||
189 => 834,
|
||||
'lessequal' => 549,
|
||||
244 => 556,
|
||||
241 => 556,
|
||||
'Uhungarumlaut' => 722,
|
||||
201 => 667,
|
||||
'emacron' => 556,
|
||||
'gbreve' => 556,
|
||||
188 => 834,
|
||||
138 => 667,
|
||||
'Scommaaccent' => 667,
|
||||
'Ohungarumlaut' => 778,
|
||||
176 => 400,
|
||||
242 => 556,
|
||||
'Ccaron' => 722,
|
||||
249 => 556,
|
||||
'radical' => 453,
|
||||
'Dcaron' => 722,
|
||||
'rcommaaccent' => 333,
|
||||
209 => 722,
|
||||
245 => 556,
|
||||
'Rcommaaccent' => 722,
|
||||
'Lcommaaccent' => 556,
|
||||
195 => 667,
|
||||
'Aogonek' => 667,
|
||||
197 => 667,
|
||||
213 => 778,
|
||||
'zdotaccent' => 500,
|
||||
'Ecaron' => 667,
|
||||
'Iogonek' => 278,
|
||||
'kcommaaccent' => 500,
|
||||
'minus' => 584,
|
||||
206 => 278,
|
||||
'ncaron' => 556,
|
||||
'tcommaaccent' => 278,
|
||||
172 => 584,
|
||||
246 => 556,
|
||||
252 => 556,
|
||||
'notequal' => 549,
|
||||
'gcommaaccent' => 556,
|
||||
240 => 556,
|
||||
158 => 500,
|
||||
'ncommaaccent' => 556,
|
||||
185 => 333,
|
||||
'imacron' => 278,
|
||||
128 => 556,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 4,
|
||||
);
|
||||
213
pdf/lib/fonts/Symbol.afm
Executable file
213
pdf/lib/fonts/Symbol.afm
Executable file
@@ -0,0 +1,213 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
|
||||
Comment Creation Date: Thu May 1 15:12:25 1997
|
||||
Comment UniqueID 43064
|
||||
Comment VMusage 30820 39997
|
||||
FontName Symbol
|
||||
FullName Symbol
|
||||
FamilyName Symbol
|
||||
Weight Medium
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
CharacterSet Special
|
||||
FontBBox -180 -293 1090 1010
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 001.008
|
||||
Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
|
||||
EncodingScheme FontSpecific
|
||||
StdHW 92
|
||||
StdVW 85
|
||||
StartCharMetrics 190
|
||||
C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ;
|
||||
C 34 ; WX 713 ; N universal ; B 31 0 681 705 ;
|
||||
C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ;
|
||||
C 36 ; WX 549 ; N existential ; B 25 0 478 707 ;
|
||||
C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ;
|
||||
C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ;
|
||||
C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ;
|
||||
C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ;
|
||||
C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ;
|
||||
C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ;
|
||||
C 43 ; WX 549 ; N plus ; B 10 0 539 533 ;
|
||||
C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ;
|
||||
C 45 ; WX 549 ; N minus ; B 11 233 535 288 ;
|
||||
C 46 ; WX 250 ; N period ; B 69 -17 181 95 ;
|
||||
C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ;
|
||||
C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ;
|
||||
C 49 ; WX 500 ; N one ; B 117 0 390 673 ;
|
||||
C 50 ; WX 500 ; N two ; B 25 0 475 685 ;
|
||||
C 51 ; WX 500 ; N three ; B 43 -14 435 685 ;
|
||||
C 52 ; WX 500 ; N four ; B 15 0 469 685 ;
|
||||
C 53 ; WX 500 ; N five ; B 32 -14 445 690 ;
|
||||
C 54 ; WX 500 ; N six ; B 34 -14 468 685 ;
|
||||
C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ;
|
||||
C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ;
|
||||
C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ;
|
||||
C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ;
|
||||
C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ;
|
||||
C 60 ; WX 549 ; N less ; B 26 0 523 522 ;
|
||||
C 61 ; WX 549 ; N equal ; B 11 141 537 390 ;
|
||||
C 62 ; WX 549 ; N greater ; B 26 0 523 522 ;
|
||||
C 63 ; WX 444 ; N question ; B 70 -17 412 686 ;
|
||||
C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ;
|
||||
C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ;
|
||||
C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ;
|
||||
C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ;
|
||||
C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ;
|
||||
C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ;
|
||||
C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ;
|
||||
C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ;
|
||||
C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ;
|
||||
C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ;
|
||||
C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ;
|
||||
C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ;
|
||||
C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ;
|
||||
C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ;
|
||||
C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ;
|
||||
C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ;
|
||||
C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ;
|
||||
C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ;
|
||||
C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ;
|
||||
C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ;
|
||||
C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ;
|
||||
C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ;
|
||||
C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ;
|
||||
C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ;
|
||||
C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ;
|
||||
C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ;
|
||||
C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ;
|
||||
C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ;
|
||||
C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ;
|
||||
C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ;
|
||||
C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ;
|
||||
C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ;
|
||||
C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ;
|
||||
C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ;
|
||||
C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ;
|
||||
C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ;
|
||||
C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ;
|
||||
C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ;
|
||||
C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ;
|
||||
C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ;
|
||||
C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ;
|
||||
C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ;
|
||||
C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ;
|
||||
C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ;
|
||||
C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ;
|
||||
C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ;
|
||||
C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ;
|
||||
C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ;
|
||||
C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ;
|
||||
C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ;
|
||||
C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ;
|
||||
C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ;
|
||||
C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ;
|
||||
C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ;
|
||||
C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ;
|
||||
C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ;
|
||||
C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ;
|
||||
C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ;
|
||||
C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ;
|
||||
C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ;
|
||||
C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ;
|
||||
C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ;
|
||||
C 126 ; WX 549 ; N similar ; B 17 203 529 307 ;
|
||||
C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ;
|
||||
C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ;
|
||||
C 162 ; WX 247 ; N minute ; B 27 459 228 735 ;
|
||||
C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
|
||||
C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ;
|
||||
C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ;
|
||||
C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ;
|
||||
C 167 ; WX 753 ; N club ; B 86 -26 660 533 ;
|
||||
C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ;
|
||||
C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ;
|
||||
C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ;
|
||||
C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ;
|
||||
C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ;
|
||||
C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ;
|
||||
C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ;
|
||||
C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ;
|
||||
C 176 ; WX 400 ; N degree ; B 50 385 350 685 ;
|
||||
C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ;
|
||||
C 178 ; WX 411 ; N second ; B 20 459 413 737 ;
|
||||
C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
|
||||
C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ;
|
||||
C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ;
|
||||
C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ;
|
||||
C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ;
|
||||
C 184 ; WX 549 ; N divide ; B 10 71 536 456 ;
|
||||
C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ;
|
||||
C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ;
|
||||
C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ;
|
||||
C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ;
|
||||
C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ;
|
||||
C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ;
|
||||
C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ;
|
||||
C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ;
|
||||
C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ;
|
||||
C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ;
|
||||
C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ;
|
||||
C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ;
|
||||
C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ;
|
||||
C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ;
|
||||
C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ;
|
||||
C 200 ; WX 768 ; N union ; B 40 -17 732 492 ;
|
||||
C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ;
|
||||
C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ;
|
||||
C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ;
|
||||
C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ;
|
||||
C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ;
|
||||
C 206 ; WX 713 ; N element ; B 45 0 505 468 ;
|
||||
C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ;
|
||||
C 208 ; WX 768 ; N angle ; B 26 0 738 673 ;
|
||||
C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ;
|
||||
C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ;
|
||||
C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ;
|
||||
C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ;
|
||||
C 213 ; WX 823 ; N product ; B 25 -101 803 751 ;
|
||||
C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ;
|
||||
C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ;
|
||||
C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ;
|
||||
C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ;
|
||||
C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ;
|
||||
C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ;
|
||||
C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ;
|
||||
C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ;
|
||||
C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ;
|
||||
C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ;
|
||||
C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ;
|
||||
C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ;
|
||||
C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ;
|
||||
C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ;
|
||||
C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ;
|
||||
C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ;
|
||||
C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ;
|
||||
C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ;
|
||||
C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ;
|
||||
C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ;
|
||||
C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ;
|
||||
C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ;
|
||||
C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ;
|
||||
C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ;
|
||||
C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ;
|
||||
C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ;
|
||||
C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ;
|
||||
C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ;
|
||||
C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ;
|
||||
C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ;
|
||||
C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ;
|
||||
C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ;
|
||||
C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ;
|
||||
C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ;
|
||||
C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ;
|
||||
C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ;
|
||||
C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ;
|
||||
C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ;
|
||||
C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ;
|
||||
C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ;
|
||||
C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
2590
pdf/lib/fonts/Times-Bold.afm
Executable file
2590
pdf/lib/fonts/Times-Bold.afm
Executable file
File diff suppressed because it is too large
Load Diff
2386
pdf/lib/fonts/Times-BoldItalic.afm
Executable file
2386
pdf/lib/fonts/Times-BoldItalic.afm
Executable file
File diff suppressed because it is too large
Load Diff
2669
pdf/lib/fonts/Times-Italic.afm
Executable file
2669
pdf/lib/fonts/Times-Italic.afm
Executable file
File diff suppressed because it is too large
Load Diff
2421
pdf/lib/fonts/Times-Roman.afm
Executable file
2421
pdf/lib/fonts/Times-Roman.afm
Executable file
File diff suppressed because it is too large
Load Diff
225
pdf/lib/fonts/ZapfDingbats.afm
Executable file
225
pdf/lib/fonts/ZapfDingbats.afm
Executable file
@@ -0,0 +1,225 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Thu May 1 15:14:13 1997
|
||||
Comment UniqueID 43082
|
||||
Comment VMusage 45775 55535
|
||||
FontName ZapfDingbats
|
||||
FullName ITC Zapf Dingbats
|
||||
FamilyName ZapfDingbats
|
||||
Weight Medium
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
CharacterSet Special
|
||||
FontBBox -1 -143 981 820
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 002.000
|
||||
Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
|
||||
EncodingScheme FontSpecific
|
||||
StdHW 28
|
||||
StdVW 90
|
||||
StartCharMetrics 202
|
||||
C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ;
|
||||
C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ;
|
||||
C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ;
|
||||
C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ;
|
||||
C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ;
|
||||
C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ;
|
||||
C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ;
|
||||
C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ;
|
||||
C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ;
|
||||
C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ;
|
||||
C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ;
|
||||
C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ;
|
||||
C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ;
|
||||
C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ;
|
||||
C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ;
|
||||
C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ;
|
||||
C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ;
|
||||
C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ;
|
||||
C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ;
|
||||
C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ;
|
||||
C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ;
|
||||
C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ;
|
||||
C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ;
|
||||
C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ;
|
||||
C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ;
|
||||
C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ;
|
||||
C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ;
|
||||
C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ;
|
||||
C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ;
|
||||
C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ;
|
||||
C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ;
|
||||
C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ;
|
||||
C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ;
|
||||
C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ;
|
||||
C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ;
|
||||
C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ;
|
||||
C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ;
|
||||
C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ;
|
||||
C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ;
|
||||
C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ;
|
||||
C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ;
|
||||
C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ;
|
||||
C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ;
|
||||
C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ;
|
||||
C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ;
|
||||
C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ;
|
||||
C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ;
|
||||
C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ;
|
||||
C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ;
|
||||
C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ;
|
||||
C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ;
|
||||
C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ;
|
||||
C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ;
|
||||
C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ;
|
||||
C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ;
|
||||
C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ;
|
||||
C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ;
|
||||
C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ;
|
||||
C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ;
|
||||
C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ;
|
||||
C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ;
|
||||
C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ;
|
||||
C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ;
|
||||
C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ;
|
||||
C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ;
|
||||
C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ;
|
||||
C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ;
|
||||
C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ;
|
||||
C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ;
|
||||
C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ;
|
||||
C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ;
|
||||
C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ;
|
||||
C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ;
|
||||
C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ;
|
||||
C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ;
|
||||
C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ;
|
||||
C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ;
|
||||
C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ;
|
||||
C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ;
|
||||
C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ;
|
||||
C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ;
|
||||
C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ;
|
||||
C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ;
|
||||
C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ;
|
||||
C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ;
|
||||
C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ;
|
||||
C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ;
|
||||
C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ;
|
||||
C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ;
|
||||
C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ;
|
||||
C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ;
|
||||
C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ;
|
||||
C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ;
|
||||
C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ;
|
||||
C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ;
|
||||
C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ;
|
||||
C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ;
|
||||
C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ;
|
||||
C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ;
|
||||
C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ;
|
||||
C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ;
|
||||
C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ;
|
||||
C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ;
|
||||
C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ;
|
||||
C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ;
|
||||
C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ;
|
||||
C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ;
|
||||
C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ;
|
||||
C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ;
|
||||
C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ;
|
||||
C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ;
|
||||
C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ;
|
||||
C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ;
|
||||
C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ;
|
||||
C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ;
|
||||
C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ;
|
||||
C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ;
|
||||
C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ;
|
||||
C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ;
|
||||
C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ;
|
||||
C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ;
|
||||
C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ;
|
||||
C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ;
|
||||
C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ;
|
||||
C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ;
|
||||
C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ;
|
||||
C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ;
|
||||
C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ;
|
||||
C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ;
|
||||
C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ;
|
||||
C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ;
|
||||
C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ;
|
||||
C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ;
|
||||
C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ;
|
||||
C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ;
|
||||
C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ;
|
||||
C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ;
|
||||
C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ;
|
||||
C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ;
|
||||
C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ;
|
||||
C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ;
|
||||
C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ;
|
||||
C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ;
|
||||
C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ;
|
||||
C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ;
|
||||
C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ;
|
||||
C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ;
|
||||
C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ;
|
||||
C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ;
|
||||
C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ;
|
||||
C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ;
|
||||
C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ;
|
||||
C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ;
|
||||
C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ;
|
||||
C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ;
|
||||
C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ;
|
||||
C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ;
|
||||
C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ;
|
||||
C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ;
|
||||
C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ;
|
||||
C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ;
|
||||
C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ;
|
||||
C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ;
|
||||
C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ;
|
||||
C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ;
|
||||
C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ;
|
||||
C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ;
|
||||
C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ;
|
||||
C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ;
|
||||
C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ;
|
||||
C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ;
|
||||
C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ;
|
||||
C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ;
|
||||
C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ;
|
||||
C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ;
|
||||
C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ;
|
||||
C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ;
|
||||
C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ;
|
||||
C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ;
|
||||
C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ;
|
||||
C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ;
|
||||
C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ;
|
||||
C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ;
|
||||
C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ;
|
||||
C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ;
|
||||
C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ;
|
||||
C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ;
|
||||
C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ;
|
||||
C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ;
|
||||
C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ;
|
||||
C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ;
|
||||
C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ;
|
||||
C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ;
|
||||
C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ;
|
||||
C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ;
|
||||
C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ;
|
||||
C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ;
|
||||
C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ;
|
||||
C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ;
|
||||
C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ;
|
||||
C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
92
pdf/lib/fonts/dompdf_font_family_cache.dist.php
Executable file
92
pdf/lib/fonts/dompdf_font_family_cache.dist.php
Executable file
@@ -0,0 +1,92 @@
|
||||
<?php return array (
|
||||
'sans-serif' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Helvetica',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Helvetica-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Helvetica-Oblique',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Helvetica-BoldOblique'
|
||||
),
|
||||
'times' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Times-Roman',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Times-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Times-Italic',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Times-BoldItalic'
|
||||
),
|
||||
'times-roman' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Times-Roman',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Times-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Times-Italic',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Times-BoldItalic'
|
||||
),
|
||||
'courier' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Courier',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Courier-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Courier-Oblique',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Courier-BoldOblique'
|
||||
),
|
||||
'helvetica' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Helvetica',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Helvetica-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Helvetica-Oblique',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Helvetica-BoldOblique'
|
||||
),
|
||||
'zapfdingbats' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'ZapfDingbats',
|
||||
'bold' => DOMPDF_FONT_DIR . 'ZapfDingbats',
|
||||
'italic' => DOMPDF_FONT_DIR . 'ZapfDingbats',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'ZapfDingbats'
|
||||
),
|
||||
'symbol' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Symbol',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Symbol',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Symbol',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Symbol'
|
||||
),
|
||||
'serif' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Times-Roman',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Times-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Times-Italic',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Times-BoldItalic'
|
||||
),
|
||||
'monospace' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Courier',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Courier-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Courier-Oblique',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Courier-BoldOblique'
|
||||
),
|
||||
'fixed' => array (
|
||||
'normal' => DOMPDF_FONT_DIR . 'Courier',
|
||||
'bold' => DOMPDF_FONT_DIR . 'Courier-Bold',
|
||||
'italic' => DOMPDF_FONT_DIR . 'Courier-Oblique',
|
||||
'bold_italic' => DOMPDF_FONT_DIR . 'Courier-BoldOblique'
|
||||
)
|
||||
)
|
||||
|
||||
/* The proper way for web browser environment independent font handling in html/css is,
|
||||
* to defining a font search path ending in serif, sans-serif, or monospace, e.g.:
|
||||
* <style>body {font-family: Verdana,Arial,Helvetica,sans-serif;}</style>
|
||||
*
|
||||
* For more satisfying results on html files without proper font search path,
|
||||
* popular fonts which are candidates for further font aliases similar to
|
||||
* 'sans-serif' and 'helvetica' above might be:
|
||||
*
|
||||
* See
|
||||
* http://www.codestyle.org/css/font-family/index.shtml
|
||||
* http://mondaybynoon.com/2007/04/02/linux-font-equivalents-to-popular-web-typefaces/
|
||||
* C:\Windows\Fonts
|
||||
*
|
||||
* Times:
|
||||
* serif, times, times-roman, times, times new roman, georgia, garamond, ms reference serif,
|
||||
* palatino, palatino linotype, dejavu serif, freeserif, liberation serif, luxi serif,
|
||||
* century schoolbook, new century schoolbook
|
||||
*
|
||||
* Helvetica:
|
||||
* sans-serif, helvetica, helvetica, microsoft sans serif, verdana, arial, tahoma,
|
||||
* trebuchet ms, lucida sans, ms reference sans serif, lucida grande, freesans,
|
||||
* liberation sans, dejavu sans, luxi sans, lucida
|
||||
*
|
||||
* Courier:
|
||||
* monospace, fixed, courier, courier new, lucida console, lucida sans typewriter, freeMono,
|
||||
* fixed, terminal, dejavu sans mono, liberation mono, luxi mono
|
||||
*/
|
||||
|
||||
?>
|
||||
1
pdf/lib/fonts/log.htm
Executable file
1
pdf/lib/fonts/log.htm
Executable file
@@ -0,0 +1 @@
|
||||
<span style='color: #900'>11,264 KB</span> <span style='color: #090'>324.1701 ms</span><br />
|
||||
17
pdf/lib/fonts/mustRead.html
Executable file
17
pdf/lib/fonts/mustRead.html
Executable file
@@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
|
||||
<meta name="generator" content="Adobe GoLive 4">
|
||||
<title>Core 14 AFM Files - ReadMe</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<font color="white">or</font>
|
||||
<table border="0" cellpadding="0" cellspacing="2">
|
||||
<tr>
|
||||
<td width="40"></td>
|
||||
<td width="300">This file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files. <font color="white">Col</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>Source <a href="http://www.adobe.com/devnet/font/#pcfi">http://www.adobe.com/devnet/font/#pcfi</a></p>
|
||||
</body>
|
||||
</html>
|
||||
BIN
pdf/lib/res/broken_image.png
Executable file
BIN
pdf/lib/res/broken_image.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 267 B |
427
pdf/lib/res/html.css
Executable file
427
pdf/lib/res/html.css
Executable file
@@ -0,0 +1,427 @@
|
||||
/**
|
||||
* DOMPDF - PHP5 HTML to PDF renderer
|
||||
*
|
||||
* File: $RCSfile: html.css,v $
|
||||
* Created on: 2004-08-04
|
||||
*
|
||||
* Copyright (c) 2004 - Benj Carson <benjcarson@digitaljunkies.ca>
|
||||
* 1998 - Netscape Communications Corporation
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this library in the file LICENSE.LGPL; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA
|
||||
*
|
||||
* Originally from mozilla (http://www.mozilla.org). Original code was
|
||||
* licensed under the NPL, with the option of release under the GPL or LGPL.
|
||||
* This file is hence released under the LGPL.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Blake Ross <BlakeR1234@aol.com>
|
||||
*
|
||||
* The latest version of DOMPDF might be available at:
|
||||
* http://www.dompdf.com/
|
||||
*
|
||||
* @link http://www.dompdf.com/
|
||||
* @copyright 2004 Benj Carson
|
||||
* @author Benj Carson <benjcarson@digitaljunkies.ca>
|
||||
* @package dompdf
|
||||
* @version 0.3
|
||||
*/
|
||||
|
||||
/* $Id: html.css,v 1.4 2006-04-05 20:09:00 benjcarson Exp $ */
|
||||
|
||||
@page {
|
||||
margin: 1.2cm;
|
||||
}
|
||||
|
||||
html {
|
||||
display: -dompdf-page;
|
||||
counter-increment: page;
|
||||
}
|
||||
|
||||
/* blocks */
|
||||
|
||||
div, map, dt, isindex {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
page-break-before: avoid;
|
||||
display: block;
|
||||
}
|
||||
|
||||
p, dl, multicol {
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
dd {
|
||||
display: block;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
display: block;
|
||||
margin: 1em 40px;
|
||||
}
|
||||
|
||||
address {
|
||||
display: block;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
center {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
blockquote[type=cite] {
|
||||
display: block;
|
||||
margin: 1em 0px;
|
||||
padding-left: 1em;
|
||||
border-left: solid;
|
||||
border-color: blue;
|
||||
border-width: thin;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: .67em 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
margin: .83em 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.17em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 1.33em 0;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.83em;
|
||||
margin: 1.67em 0;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.67em;
|
||||
margin: 2.33em 0;
|
||||
}
|
||||
|
||||
listing {
|
||||
display: block;
|
||||
font-family: fixed;
|
||||
font-size: medium;
|
||||
white-space: pre;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
plaintext, xmp, pre {
|
||||
display: block;
|
||||
font-family: fixed;
|
||||
white-space: pre;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
/* tables */
|
||||
|
||||
table {
|
||||
display: table;
|
||||
border-spacing: 2px;
|
||||
border-collapse: separate;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
text-indent: 0;
|
||||
text-align: left; /* quirk */
|
||||
}
|
||||
|
||||
table[border] {
|
||||
border-style: outset;
|
||||
border-color: gray;
|
||||
}
|
||||
|
||||
/* This won't work (???) */
|
||||
/*
|
||||
table[border] td,
|
||||
table[border] th {
|
||||
border: 1pt solid grey;
|
||||
}*/
|
||||
|
||||
/* make sure backgrounds are inherited in tables -- see bug 4510 */
|
||||
td, th, tr {
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
/* caption inherits from table not table-outer */
|
||||
caption {
|
||||
display: table-caption;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
tr {
|
||||
display: table-row;
|
||||
vertical-align: inherit;
|
||||
}
|
||||
|
||||
col {
|
||||
display: table-column;
|
||||
}
|
||||
|
||||
colgroup {
|
||||
display: table-column-group;
|
||||
}
|
||||
|
||||
tbody {
|
||||
display: table-row-group;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: table-header-group;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
display: table-footer-group;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* To simulate tbody auto-insertion */
|
||||
table > tr {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td {
|
||||
display: table-cell;
|
||||
vertical-align: inherit;
|
||||
text-align: inherit;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
th {
|
||||
display: table-cell;
|
||||
vertical-align: inherit;
|
||||
font-weight: bold;
|
||||
padding: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* inlines */
|
||||
q {
|
||||
quotes: '"' '"' "'" "'"; /* FIXME only the first level is used */
|
||||
}
|
||||
|
||||
q:before {
|
||||
content: open-quote;
|
||||
}
|
||||
|
||||
q:after {
|
||||
content: close-quote;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: #00c;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
i, cite, em, var, dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
tt, code, kbd, samp {
|
||||
font-family: fixed;
|
||||
}
|
||||
|
||||
u, ins {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
s, strike, del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
blink {
|
||||
text-decoration: blink;
|
||||
}
|
||||
|
||||
big {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
sub {
|
||||
vertical-align: sub;
|
||||
font-size: smaller;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
sup {
|
||||
vertical-align: super;
|
||||
font-size: smaller;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
nobr {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* lists */
|
||||
|
||||
ul, menu, dir {
|
||||
display: block;
|
||||
list-style-type: disc;
|
||||
margin: 1em 0;
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
ol {
|
||||
display: block;
|
||||
list-style-type: decimal;
|
||||
margin: 1em 0;
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
li {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* nested lists have no top/bottom margins */
|
||||
ul ul, ul ol, ul dir, ul menu, ul dl,
|
||||
ol ul, ol ol, ol dir, ol menu, ol dl,
|
||||
dir ul, dir ol, dir dir, dir menu, dir dl,
|
||||
menu ul, menu ol, menu dir, menu menu, menu dl,
|
||||
dl ul, dl ol, dl dir, dl menu, dl dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* 2 deep unordered lists use a circle */
|
||||
ol ul, ul ul, menu ul, dir ul,
|
||||
ol menu, ul menu, menu menu, dir menu,
|
||||
ol dir, ul dir, menu dir, dir dir {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
/* 3 deep (or more) unordered lists use a square */
|
||||
ol ol ul, ol ul ul, ol menu ul, ol dir ul,
|
||||
ol ol menu, ol ul menu, ol menu menu, ol dir menu,
|
||||
ol ol dir, ol ul dir, ol menu dir, ol dir dir,
|
||||
ul ol ul, ul ul ul, ul menu ul, ul dir ul,
|
||||
ul ol menu, ul ul menu, ul menu menu, ul dir menu,
|
||||
ul ol dir, ul ul dir, ul menu dir, ul dir dir,
|
||||
menu ol ul, menu ul ul, menu menu ul, menu dir ul,
|
||||
menu ol menu, menu ul menu, menu menu menu, menu dir menu,
|
||||
menu ol dir, menu ul dir, menu menu dir, menu dir dir,
|
||||
dir ol ul, dir ul ul, dir menu ul, dir dir ul,
|
||||
dir ol menu, dir ul menu, dir menu menu, dir dir menu,
|
||||
dir ol dir, dir ul dir, dir menu dir, dir dir dir {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
/* forms */
|
||||
|
||||
/*
|
||||
input[type=text] {
|
||||
border: 1pt solid black;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
input[type=text]:before {
|
||||
content: attr(value);
|
||||
}*/
|
||||
|
||||
fieldset {
|
||||
display: block;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
border: 1pt groove #666;
|
||||
}
|
||||
|
||||
fieldset > legend {
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
min-width: 1em;
|
||||
max-width: none;
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
max-height: none;
|
||||
white-space: nowrap;
|
||||
margin-top: -1.0em;
|
||||
background: white;
|
||||
}
|
||||
|
||||
legend {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
/* leafs */
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 2px;
|
||||
border: 1px inset;
|
||||
margin: 0.5em auto 0.5em auto;
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 2px inset;
|
||||
}
|
||||
|
||||
noframes {
|
||||
display: none;
|
||||
}
|
||||
|
||||
br {
|
||||
display: -dompdf-br;
|
||||
}
|
||||
|
||||
img, img_generated {
|
||||
display: -dompdf-image;
|
||||
}
|
||||
|
||||
dompdf_generated {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/* hidden elements */
|
||||
area, base, basefont, head, meta, script, style, title,
|
||||
noembed, noscript, param {
|
||||
display: none;
|
||||
}
|
||||
24
pdf/lib/ttf2ufm/README.TXT
Executable file
24
pdf/lib/ttf2ufm/README.TXT
Executable file
@@ -0,0 +1,24 @@
|
||||
To embed TrueType fonts (.TTF) files, you need to extract the font metrics and
|
||||
build the required tables using the provided utility (/fonts/ttf2ufm).
|
||||
|
||||
TTF2UFM is a modified version of Mark Heath's TTF 2 PT1 converter
|
||||
(http://ttf2pt1.sourceforge.net/) by Steven Wittens <steven@acko.net>
|
||||
(http://www.acko.net/blog/ufpdf). ttf2ufm, is included in /ttf2ufm-src.
|
||||
The /fonts/ttf2ufm folder contains a compiled Windows binary.
|
||||
TTF 2 UFM is identical to TTF 2 PT1 except that it also generates a .ufm file
|
||||
for usage with makefontuni.php.
|
||||
|
||||
|
||||
Setting up a Truetype font for usage with TCPDF:
|
||||
1) Generate the font's .ufm metrics file by processing it with the provided
|
||||
ttf2ufm program (modified ttf2pt1). For example:
|
||||
$ ttf2ufm -a -F myfont.ttf
|
||||
2) Run makefontuni.php with the .ttf and .ufm filenames as argument:
|
||||
$ php -q makefontuni.php myfont.ttf myfont.ufm
|
||||
3) Copy the resulting .php, .z and .ctg.z file to the TCPDF font directory.
|
||||
4) Rename php font files variations for bold and italic using the following schema:
|
||||
[basic-font-name]b.php for bold variation
|
||||
[basic-font-name]i.php for oblique variation
|
||||
[basic-font-name]bi.php for bold oblique variation
|
||||
5) Convert all fonts filenames to lowercase.
|
||||
|
||||
BIN
pdf/lib/ttf2ufm/bin/ttf2ufm.exe
Executable file
BIN
pdf/lib/ttf2ufm/bin/ttf2ufm.exe
Executable file
Binary file not shown.
0
pdf/lib/ttf2ufm/src/CHANGES
Executable file
0
pdf/lib/ttf2ufm/src/CHANGES
Executable file
815
pdf/lib/ttf2ufm/src/CHANGES.html
Executable file
815
pdf/lib/ttf2ufm/src/CHANGES.html
Executable file
@@ -0,0 +1,815 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
TTF2PT1 - CHANGES history
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
TTF2PT1 - CHANGES history
|
||||
</H2>
|
||||
|
||||
<!
|
||||
(Do not edit this file, it is generated from CHANGES.html!!!)
|
||||
>
|
||||
|
||||
<H4>
|
||||
3.4.4 -- December 31, 2003
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Improved the auto-vectoring (-OV) alrogithm.
|
||||
<li> Allow use of any encoding table of format 4 in the ttf parser.
|
||||
<li> Take the first available format 4 encoding table if no known
|
||||
table is found in the ttf parser.
|
||||
<li> The ttf parser lists the available encodings if no supported
|
||||
encoding table is found. This can be used to list the encodings in
|
||||
any font by specifying a bogus explicit PID/EID, such as
|
||||
with option <b>-l plane+pid=50,eid=50</b>.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Fix to build all the features on Windows MS C++, by Tomoo Amano.
|
||||
<li> Fix for a null pointer in the encodings, bad inner loop variable.
|
||||
<li> Unified the parsing of font name strings and improved the checks
|
||||
against invalid characters.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.4.3 -- December 2, 2002
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> <tt>scripts/forceiso</tt> got an optional argument to select the
|
||||
format of the names for glyphs without standard Latin-1 names.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Changed the glyph names in scripts/forceiso to match those in ttf2pt1.
|
||||
<li> Included the missing directory app/TeX.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.4.2 -- August 30, 2002
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> New map for T2A_compat encoding (for Cyrillic LaTeX) by Mikhail
|
||||
Umorin.
|
||||
<li> Scripts supporting font conversion for CJK-LaTeX, by Mike Fabian
|
||||
from SuSE.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Explicit owner/group/permissions are used to install directories.
|
||||
<li> In scripts/convert fixed the addition of encoding name to the font
|
||||
name for the external encoding maps, was missing "/" at the start.
|
||||
<li> Fixed the divergence between two copies of UniqueID.
|
||||
<li> Fixed the recovery after defective empty contours.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.4.1 -- June 13, 2002
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added Autotrace support for the bitmap fonts (-OZ). It's horrible.
|
||||
<li> Added vectorization of bitmap fonts (-OV) - functionally the same thing as
|
||||
autotrace but home-grown. Works mostly decently but still with large
|
||||
space for impprovement.
|
||||
<li> Relaxed the conditions for warnings about long glyphs.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Fix by Rob Kolstad for a crash in the new outline smoothing
|
||||
code (on small thin contours) and diagnostic for another crash.
|
||||
<li> Fix by Holger Huesing for a crash on degenerate contours.
|
||||
<li> Fix for bitmaps of zero dimensions.
|
||||
<li> The BDF reader does not fail on redefintion of the properties.
|
||||
<li> Fix for reading of BDF glyphs with 0 size.
|
||||
<li> Fix for a hang when guessing the boldness of some fonts.
|
||||
<li> Fix by Adriano Konzen for scaling coefficients in composite glyphs.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.4.0 -- November 24, 2001
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Parser for the BDF bitmap fonts.
|
||||
<li> Vastly improved the smoothing of the outlines.
|
||||
<li> The options are saved as a comment in the output file.
|
||||
<li> New script <tt>other/showdf</tt> for visual comparison of the fonts.
|
||||
<li> New option <b>-G</b> to select the file types to generate.
|
||||
<li> Creation of the dvips encoding files (by Rigel).
|
||||
<li> More glyphs in the Chinese maps (by Rigel).
|
||||
<li> Made the assignment of ISO8859/1 glyph names to the glyphs in the
|
||||
fonts without PostScript names in them dependent on the original
|
||||
encoding: no change for the 8-bit encodings, for the Unicode encoding
|
||||
the names are assigned to the glyph with the codes 0-255 in Unicode,
|
||||
and for the other 16-bit encodings the 8859/1 names are not assigned
|
||||
at all.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Added a check for spaces in the PostScript font name in the FreeType
|
||||
parser.
|
||||
<li> Made "-" a valid character in the glyph names.
|
||||
<li> Fixed handling of the Unicode names returned by FreeType, though
|
||||
not perfectly.
|
||||
<li> Changed the build for FreeType-2.0.4.
|
||||
<li> Fixed the handling and printing of bad glyph names.
|
||||
<li> Fixed the bug with duplicated glyph names when more than 256 glyphs are
|
||||
extracted from a font that has no PostScript glyph names defined.
|
||||
<li> Added ability to map a glyph to more than one code when unisng the
|
||||
native parser (-pttf).
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.3.5 -- September 12, 2001
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Fixed the scaling of Ascender and Descender in the AFM file.
|
||||
<li> Fixed the brekage of "-l adobestd".
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.3.4 -- June 4, 2001
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Cyrillic (full set of glyphs) language tables (by Zvezdan Petkovic).
|
||||
Now the languages "russian" and "bulgarian" are provided for compatibility
|
||||
only, use the common language "cyrillic" instead.
|
||||
<li> More information in <a href="FONTS.html">FONTS</a> on using Cyrillic fonts with
|
||||
Netscape (by Zvezdan Petkovic)
|
||||
<li> In the Netscape print filter added removal of the clipping path command:
|
||||
otherwise Netscape tends to cut off a large piece of the rightmost column
|
||||
of the tables.
|
||||
<li> One more script for printing from Netscape (by Zvezdan Petkovic).
|
||||
<li> Added selection of the base TTF encoding by pid/eid in the external maps.
|
||||
<li> Improved the recognition of substituted stems for intersecting contours.
|
||||
<li> Improved the substituted hints to make the horizontal positioning of
|
||||
the points at the same height more uniform at small pixel sizes.
|
||||
<li> Made the algorithm for calculation of standard stem widths more
|
||||
selective.
|
||||
<li> Added link to the GnuWin32 project.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> TH: Print out metrics of un-encoded glyphs even without "-a" option.
|
||||
<li> Added missing "/" in Fontmap generation in convert (by Zvezdan Petkovic).
|
||||
<li> Removed unneccessary "\n" in messages in x2gs.
|
||||
<li> Removed the broken overoptimisation of "0 0 rmoveto".
|
||||
<li> Removed the useless warnings about multiple codes for a glyph.
|
||||
<li> Changed the FreeType2 include directory in the Makefile to match the
|
||||
FreeType's default.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.3.3 -- March 4, 2001
|
||||
</H4>
|
||||
<!
|
||||
-------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> TH: Added printing of front-end parser in the header of the font file.
|
||||
<li> Tested build with FreeType 2.0 Release.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Changed the installation script which on some versions of bash
|
||||
copied all files into the share directory.
|
||||
<li> Fixed the close sequences of html2man comments in the HTML files,
|
||||
now they should display correctly with <tt>lynx</tt>.
|
||||
<li> Restored the ability to include un-encoded characters into the
|
||||
customised maps (those with codes over 255).
|
||||
<li> Fixed the Unicode mapping of the Cyrillic letters "YO" and "yo"
|
||||
(by Yuri Shemanin).
|
||||
<li> Fixed the spurious aborts when the conversion-by-plane function
|
||||
gets called for auto-guessing of encoding.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.3.2 -- November 20, 2000
|
||||
</H4>
|
||||
<!
|
||||
--------------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added generation of man pages.
|
||||
<li> Added "make install" and "make uninstall".
|
||||
<li> Added language option "-l plane".
|
||||
<li> In <tt>other/showg</tt> added better support of comparison files:
|
||||
<ul>
|
||||
<li> printing of the comparison file legend;
|
||||
<li> guessing of missing glyph names in a comparison file by code;
|
||||
<li> bounding boxes of all comparison files are used for page layout.
|
||||
</ul>
|
||||
<li> Added ability to use external t1asm instead of compiling it in.
|
||||
<li> Renamed the fonts installation guide from INSTALL*html to FONTS*html
|
||||
to avoid confusion with installation of ttf2pt1 itself.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Removed erroneous extra fclose(pfa_file).
|
||||
<li> Fixed random memory corruption that manifested with crash on Linux
|
||||
when converting fonts not containing glyph names.
|
||||
<li> Removed from the output file the comments that confused dvips. Changed
|
||||
<tt>other/showg</tt> to work without them.
|
||||
<li> In <tt>other/showg</tt> added better checks for missing glyphs, now it
|
||||
gives warnings about them and the output file does not crash PostScript.
|
||||
</ul>
|
||||
|
||||
<b>Other:</b>
|
||||
<ul>
|
||||
<li> <tt>ttf2pfa</tt> is no longer included, people interested in history
|
||||
should look for it in the older versions.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.3.1 -- October 22, 2000
|
||||
</H4>
|
||||
<!
|
||||
-------------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added front-end parser based on the FreeType-2 library. See Makefile
|
||||
for build instructions.
|
||||
<li> Changed the handling of encodings to accomodate the FreeType model.
|
||||
<li> Further cleaned up the front-end parser interface.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Fixed a bug that caused core dump on Alpha machines.
|
||||
<li> Fixed a bug in the outline smoothing that occasionally caused core dump.
|
||||
<li> Cleaned up warnings from picky compilers
|
||||
<li> Fixed more bugs in the Windows port (by Stefan Bauer).
|
||||
<li> Fixed the RPM spec file (suggested by Brian Armstrong).
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<H4>
|
||||
3.3.0 -- September 22, 2000
|
||||
</H4>
|
||||
<!
|
||||
---------------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Converted most of the outlines' processing to floating point
|
||||
arithmetic.
|
||||
<li> Added splitting of curves crossing the quadrant boundaries (no gross
|
||||
damage is done any more to the Marvosym font and others like it).
|
||||
<li> Added modular interface for front-end font parsers and option to control
|
||||
their selection at run time.
|
||||
<li> Grouped the outline processing control options into one to reduce the
|
||||
options namespace pollution.
|
||||
<li> Thomas moved the Chinese maps into a separate module, chinese-maps.
|
||||
<li> Thomas added option -V to print version number. In addition, the version
|
||||
number is put in the header of the font file.
|
||||
<li> Added long option names (suggested by Thomas).
|
||||
<li> Added support for multi-level composite glyphs.
|
||||
<li> TH: Made <fontname> command-line argument optional; default to <ttf-file>
|
||||
with suffix replaced.
|
||||
<li> In <tt>other/showg</tt> added more ways to specify glyphs and the comparison option.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Fixed the VC++ batch file, added batch file for Cygnus GCC on Windows.
|
||||
<li> Removed parentheses from the Version string in AFM files because it does
|
||||
not help StarOffice anyway. StarOffice 5.2 has been reported to have this
|
||||
bug fixed. Added paragraph on StarOffice in FONTS.html.
|
||||
<li> Made messages on the '?' option parameter more meaningful (by Johan Vromans).
|
||||
<li> Changed the latin1 encoding table to include the Euro sign, Z and z with
|
||||
caron (by Thomas Henlich).
|
||||
<li> Improved the smoothing code which occasionally had problems with
|
||||
joining curves. Also fixed a few minor bugs in it.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.22 -- May 23, 2000
|
||||
</H4>
|
||||
<!
|
||||
--------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Included windows support by Frank Siegert (somewhat amended)
|
||||
<li> Added control over verbosity of warnings.
|
||||
<li> Added arguments and initialization functions to the language
|
||||
translation routines.
|
||||
<li> Added support of planes determined by arguments to the external
|
||||
maps.
|
||||
<li> Added compact external maps format (primarily for Eastern fonts).
|
||||
<li> Added external maps for Chinese GBK and Big5 encodings (converted
|
||||
from ttf2pfb) as well as maps for other Chinese encodings by Wang Lei.
|
||||
<li> Added the idea of buckets to speed up the search in external maps.
|
||||
<li> Changed the grouping algorithm for substituted hints: now it creates
|
||||
a bit bigger files but requires smaller hint stack when being rendered.
|
||||
<li> Added maximal limit of hint stack depth, glyphs requiring bigger
|
||||
stack get generation of substituted hints disabled. This makes substituted
|
||||
hints safe to use, no more lost glyphs due to hint stack overflow.
|
||||
<li> Added the font dump program <tt>other/dumpf</tt>.
|
||||
<li> Changed the testing HTML generator <tt>other/lst.pl</tt> to use tables.
|
||||
<li> Added debugging script <tt>other/cntstems.pl</tt> to count required hint
|
||||
stack depth for the glyphs.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> Fixed printing of UID in script/trans. Changed the auto-generated UID to
|
||||
be in range 4000000-4999999 which is reserved by Adobe for private use.
|
||||
<li> Fixed handling of "cleartomark" in built-in t1asm.
|
||||
<li> Added handling of "can't happen" case in straighten() routine
|
||||
which actually happened on strange fonts and caused failure on assertion.
|
||||
<li> Made it always include the glyph .notdef in the resulting font.
|
||||
<li> Placed the version string in AFM file in parentheses, hopefully
|
||||
that would fix the problem with StarOffice.
|
||||
<li> Improved the smoothing code which occasionally had problems with
|
||||
joining curves.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.21 -- March 1, 2000
|
||||
</H4>
|
||||
<!
|
||||
---------------------
|
||||
>
|
||||
|
||||
Sergey Babkin: committed the changes by Petr Titera and
|
||||
my bugfixes.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> New Unicode map format with glyph names, by Petr Titera.
|
||||
<li> Option to force the Unicode encoding by Petr Titera
|
||||
(I changed it to work on any MS encoding, not only Symbol).
|
||||
<li> Slightly tweaked the calculation of hints, should be better now.
|
||||
</ul>
|
||||
|
||||
<b>Bug fixes:</b>
|
||||
<ul>
|
||||
<li> The unicode-sample.map with description of the map formats
|
||||
was lost in the release process, restored and enhanced.
|
||||
<li> Renamed the table ISOLatin1Encoding to Fmt3Encoding to reflect
|
||||
the way it is used. Saved the original one for reference
|
||||
purposes. In the new table renamed "quoteright" to "quotesingle"
|
||||
as Thomas Henlich suggested (and he were right).
|
||||
<li> In the ISOLatinEncoding table renamed the glyph "grave"
|
||||
at octal 0140 to "quoteleft", "quotesingle" at octal 047 to
|
||||
"quoteright" to conform to the standard as suggested by
|
||||
Martin Trautner).
|
||||
<li> Fixed bug in scripts/trans that corrupted the UniqueID record
|
||||
in the translated fonts.
|
||||
<li> Fixed bug in interaction of substituted hints with BlueZones.
|
||||
Now the fonts with hint substitution seem to be always at least
|
||||
not worse than without it (well, when they fit in the X11
|
||||
file size limit).
|
||||
</ul>
|
||||
|
||||
|
||||
<H4>
|
||||
3.2 -- January 15, 2000
|
||||
</H4>
|
||||
<!
|
||||
-----------------------
|
||||
>
|
||||
|
||||
Sergey Babkin: combined my changes with the changes by
|
||||
Thomas Henlich. The result deserves a not-so-minor version
|
||||
increase.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Support of the external Unicode re-encoding maps
|
||||
(by Thomas).
|
||||
<li> Support for inclusion of all the glyphs from the
|
||||
source file into the resulting file (inspired by
|
||||
Thomas but I re-implemented it to remove the limitation
|
||||
of his implementation: not more than 1024 glyphs).
|
||||
<li> The hints substitution. It's an experimental feature
|
||||
yet and needs further work.
|
||||
<li> Support for UniqueID and its auto-generation.
|
||||
<li> Support for the name-based conversions from Unicode
|
||||
in general and the adobestd "language" in particular.
|
||||
<li> Started the split of the source code into multiple
|
||||
files. This needs more work to do it in a cleaner
|
||||
way.
|
||||
<li> Better framework for the debugging printout
|
||||
in the converter.
|
||||
<li> Utilities to install the fonts in Netscape
|
||||
Navigator/Communicator 4.x.
|
||||
<li> Patches for bigger font files in the X11 rasterizer.
|
||||
<li> Linux RPM spec-file (by Johan Vromans).
|
||||
<li> Added the COPYRIGHT file (BSD-style, as we discussed
|
||||
on the mailing list earlier) and the CHANGES file.
|
||||
<li> Creation of the <tt>.pfb</tt> files from the <tt>convert</tt>
|
||||
script.
|
||||
<li> Changed the <tt>.notdef</tt>-s in the built-in
|
||||
ISOLatin1Encoding table to some valid names (by Thomas).
|
||||
Thomas also suggested replacing `<tt>quoteright</tt>' by
|
||||
`<tt>quotesingle</tt>' but this seems to be against the
|
||||
Adobe ISOLatin1 table.
|
||||
<li> New aliases <tt>windows-1251</tt> and <tt>cp-866</tt> for
|
||||
the Russian encodings: those are expected by Netscape
|
||||
navigator.
|
||||
<li> The font comparison program <tt>other/cmpf</tt>.
|
||||
<li> The "magnifying glass" program for glyph outlines:
|
||||
<tt>other/showg</tt>.
|
||||
<li> Other updates of the tools in the `<tt>other</tt>' subdirectory.
|
||||
<li> Added a link to T1LIB in README.
|
||||
<li> A few new options in <tt>convert.cfg</tt>.
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> A bug in the outline smoothing code that corrupted some
|
||||
of the fonts (for example, Microsoft Verdana).
|
||||
<li> Added explicit `<tt>cleartomark</tt>' to the end of file,
|
||||
this seems to be compatible with both old and new version
|
||||
of <tt>t1asm</tt> (suggested by Thomas).
|
||||
<li> Added the <tt>FontEncoding</tt> statement to the AFM files
|
||||
(techincally this was not a bug because this statement
|
||||
is optional but some programs want it).
|
||||
<li> A coredump when the converter tried to print a warning
|
||||
(rather ironically) about a weird glyph width.
|
||||
<li> Changed the underscores in the font names to dashes (this
|
||||
has been proposed long time ago by Johan Vromans).
|
||||
<li> No more glyph names of font names staring with a digit.
|
||||
<li> The names of the fonts in font and AFM files are now the
|
||||
same as in the generated Ghostscript <tt>Fontmap</tt> file.<br>
|
||||
<b>Warning:</b> the names in <tt>Fontmap</tt> have been
|
||||
changed.
|
||||
<li> The <tt>forceiso</tt> script does not corrupt the character
|
||||
and kerning pairs counts any more, and is optional at all.
|
||||
<li> Fix for a loop going to 254 instead of 255 (by Thomas).
|
||||
<li> Added ':' in the font header (by Thomas).
|
||||
<li> A coredump when wrong language name is given (this was
|
||||
also fixed by Thomas but I noticed it too late, after
|
||||
I already fixed it by myself).
|
||||
<li> Fixed the links to the Adobe documents in README.
|
||||
</ul>
|
||||
|
||||
|
||||
<H4>
|
||||
3.13 -- October 18, 1999
|
||||
</H4>
|
||||
<!
|
||||
------------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> New option -v for automatic re-scaling based on the vertical size of the font
|
||||
<li> Changed the code to use getopt() instead of a home-made version of it.
|
||||
<li> Latin2 language support by Szalay Tamas.
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> Fix for the bug that made possible calls of malloc(0).
|
||||
<li> Refinement of the option -w to prevent extra wide spacing
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.12 -- October 2, 1999
|
||||
</H4>
|
||||
<!
|
||||
-----------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added support for the Bulgarian language (actually, for now just an alias
|
||||
of Russian).
|
||||
<li> Added option -w that tries to make sure that the character widths are not
|
||||
too narrow.
|
||||
<li> Added the concept of aliased encodings.
|
||||
<li> Now the conversion scripts create and install the .afm files too.
|
||||
<li> The conversion script removes the intermediate files after installation.
|
||||
<li> Added tunables to the conversion script.
|
||||
<li> Installation of the Ghostscript fonts can now be done automatically
|
||||
together with the X11 fonts.
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> (FINALLY!!!) A correct fix for the infamous Red Hat 6.0 stdio "feature".
|
||||
<li> A number of little bugs discovered by a picky SGI compiler (well, maybe
|
||||
some day I'll try to run it through the UnixWare lint and see what happens).
|
||||
<li> A diagnostic message about the empty encodings in the convert script was
|
||||
made less cryptic and a bug in the awk sub-script was fixed.
|
||||
<li> The .afm creation code now considers the option -t.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.11 -- May 24, 1999
|
||||
</H4>
|
||||
<!
|
||||
--------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> It includes the Turkish (Latin5, ISO8859/9)
|
||||
language support by Turgut Uyar and Baltic (ISO8859/4) languages support by
|
||||
Rihardas Hepas.
|
||||
<li> Also the installation script got updated: the configuration parameters
|
||||
are moved to a separate file and the generated fonts.dir files should now be
|
||||
compatible with Xfsft.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.1 -- March 28, 1999
|
||||
</H4>
|
||||
<!
|
||||
---------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Improved the interaction of the character-level hints and font-level hints
|
||||
</ul>
|
||||
|
||||
|
||||
<H4>
|
||||
3.0 -- March 6, 1999
|
||||
</H4>
|
||||
<!
|
||||
--------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added HTML documents.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.0beta2 -- February 14, 1999
|
||||
</H4>
|
||||
<!
|
||||
-----------------------------
|
||||
>
|
||||
|
||||
Packaged by Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added ability to print the .afm file instead of the font to STDOUT.
|
||||
<li> Added the guessing of the /ForceBold parameter that proved to be useful.
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> Removed the force-fixed option that proved to be troublesome.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.0beta1 -- December 11, 1998
|
||||
</H4>
|
||||
<!
|
||||
-----------------------------
|
||||
>
|
||||
|
||||
By Andrew Weeks.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added option (passed to t1asm) to create a compressed binary
|
||||
version of the font (A PFB file).
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> Versions of handle_post and handle_cmap that deal with some
|
||||
problems with buggy fonts.
|
||||
<li> Minor Bug Fixes.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.0beta-afm -- December 5, 1998
|
||||
</H4>
|
||||
<!
|
||||
-------------------------------
|
||||
>
|
||||
|
||||
By Thomas Henlich.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Integration of AFM file creation.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.0beta -- November 15, 1998
|
||||
</H4>
|
||||
<!
|
||||
----------------------------
|
||||
>
|
||||
|
||||
By Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Added the auto-calculation of the italic angle.
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> Fixed a couple of bugs.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
3.0alpha -- October 19, 1998
|
||||
</H4>
|
||||
<!
|
||||
----------------------------
|
||||
>
|
||||
|
||||
By Sergey Babkin.
|
||||
<p>
|
||||
|
||||
<b>New features:</b>
|
||||
<ul>
|
||||
<li> Improved (although still not perfect) handling of
|
||||
scaling in composite glyphs
|
||||
<li> Automatic correction of outlines to make them more
|
||||
smooth (to correct both rounding errors introduced
|
||||
during conversion and present in the original font)
|
||||
<li> Automatic generation of hints (still has lots of
|
||||
space for improvement)
|
||||
<li> Automatic generation of BlueValues etc.
|
||||
</ul>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> Scaling of fonts to 1000x1000 M-square required by
|
||||
Type1 standard
|
||||
<li> Printing out the contours in reverse direction, because
|
||||
TTF directions are different from Type1 ones (that was
|
||||
the major reason why the fonts generated by
|
||||
version 2.2 were rendered so badly in small sizes)
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
June 22, 1998 (AKA 2.2)
|
||||
</H4>
|
||||
<!
|
||||
-------------
|
||||
>
|
||||
|
||||
By Thomas Henlich.
|
||||
<p>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> "width" should be "short int" because otherwise:
|
||||
characters with negative widths (e.g. -4) become *very* wide (65532)
|
||||
<li> The number of /CharStrings is numglyphs and not numglyphs+1
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
February 13, 1998
|
||||
</H4>
|
||||
<!
|
||||
-----------------
|
||||
>
|
||||
|
||||
By Mark Heath.
|
||||
<p>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> An original Bug Reported by Frank, which was just incorrect syntax in the
|
||||
Type 1 header, managed to creep back into the Feb 04 Version. This has been
|
||||
Fixed in the Feb 13 Version.
|
||||
</ul>
|
||||
|
||||
<H4>
|
||||
February 4, 1998
|
||||
</H4>
|
||||
<!
|
||||
----------------
|
||||
>
|
||||
|
||||
By Mark Heath.
|
||||
<p>
|
||||
|
||||
<b>Bux fixes:</b>
|
||||
<ul>
|
||||
<li> A workaround was implemented in ttf2pfa by altering the matrix. I suspect
|
||||
I will have to calculate the correct values, as matrix ops are probably not
|
||||
allowed in Type 1 format.
|
||||
</ul>
|
||||
|
||||
<!
|
||||
---------------------------------------------
|
||||
>
|
||||
<H4>
|
||||
The older history seems to be lost.
|
||||
</H4>
|
||||
|
||||
<I>
|
||||
(S.B.: The story how we got the version numbers is rather funny. Initially
|
||||
there were no version umbers, the releases were marked by dates. The version
|
||||
from June 22 1998 untarred itself into a directory "<tt>ttf2pt1-22</tt>". When I
|
||||
made my changes to it I assumed that this was the version number meaning
|
||||
version 2.2. Since Mark asked me to send him a complete archive I supposed
|
||||
that I have to bump the version number. And I bumped it to 3.0 because the
|
||||
changes were rather extensive. Mark silently agreed and released the new
|
||||
version as 3.0. And that's the end of the story about how we got this
|
||||
Microsoft-like high version number.)
|
||||
</I>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
87
pdf/lib/ttf2ufm/src/COPYRIGHT
Executable file
87
pdf/lib/ttf2ufm/src/COPYRIGHT
Executable file
@@ -0,0 +1,87 @@
|
||||
The following copyright notice applies to all the files provided
|
||||
in this distribution unless explicitly noted otherwise
|
||||
(the most notable exception being t1asm.c).
|
||||
|
||||
Copyright (c) 1997-2003 by the AUTHORS:
|
||||
Andrew Weeks <ccsaw@bath.ac.uk>
|
||||
Frank M. Siegert <fms@this.net>
|
||||
Mark Heath <mheath@netspace.net.au>
|
||||
Thomas Henlich <thenlich@rcs.urz.tu-dresden.de>
|
||||
Sergey Babkin <babkin@users.sourceforge.net>, <sab123@hotmail.com>
|
||||
Turgut Uyar <uyar@cs.itu.edu.tr>
|
||||
Rihardas Hepas <rch@WriteMe.Com>
|
||||
Szalay Tamas <tomek@elender.hu>
|
||||
Johan Vromans <jvromans@squirrel.nl>
|
||||
Petr Titera <P.Titera@sh.cvut.cz>
|
||||
Lei Wang <lwang@amath8.amt.ac.cn>
|
||||
Chen Xiangyang <chenxy@sun.ihep.ac.cn>
|
||||
Zvezdan Petkovic <z.petkovic@computer.org>
|
||||
Rigel <rigel863@yahoo.com>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgement:
|
||||
This product includes software developed by the TTF2PT1 Project
|
||||
and its contributors.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
For the approximate list of the AUTHORS' responsibilities see the
|
||||
project history.
|
||||
|
||||
Other contributions to the project are:
|
||||
|
||||
Turgut Uyar <uyar@cs.itu.edu.tr>
|
||||
The Unicode translation table for the Turkish language.
|
||||
|
||||
Rihardas Hepas <rch@WriteMe.Com>
|
||||
The Unicode translation table for the Baltic languages.
|
||||
|
||||
Szalay Tamas <tomek@elender.hu>
|
||||
The Unicode translation table for the Central European languages.
|
||||
|
||||
Johan Vromans <jvromans@squirrel.nl>
|
||||
The RPM file.
|
||||
|
||||
Petr Titera <P.Titera@sh.cvut.cz>
|
||||
The Unicode map format with names, the forced Unicode option.
|
||||
|
||||
Frank M. Siegert <frank@this.net>
|
||||
Port to Windows
|
||||
|
||||
Lei Wang <lwang@amath8.amt.ac.cn>
|
||||
Chen Xiangyang <chenxy@sun.ihep.ac.cn>
|
||||
Translation maps for Chinese fonts.
|
||||
|
||||
Zvezdan Petkovic <z.petkovic@computer.org>
|
||||
The Unicode translation tables for the Cyrillic alphabet.
|
||||
|
||||
Rigel <rigel863@yahoo.com>
|
||||
Generation of the dvips encoding files, modification to the Chinese maps.
|
||||
|
||||
I. Lee Hetherington <ilh@lcs.mit.edu>
|
||||
The Type1 assembler (from the package 't1utils'), its full copyright
|
||||
notice:
|
||||
Copyright (c) 1992 by I. Lee Hetherington, all rights reserved.
|
||||
Permission is hereby granted to use, modify, and distribute this program
|
||||
for any purpose provided this copyright notice and the one below remain
|
||||
intact.
|
||||
|
||||
462
pdf/lib/ttf2ufm/src/FONTS
Executable file
462
pdf/lib/ttf2ufm/src/FONTS
Executable file
@@ -0,0 +1,462 @@
|
||||
Sergey A. Babkin
|
||||
<babkin@bellatlantic.net> or <sab123@hotmail.com>
|
||||
(Do not edit this file, it is generated from FONTS.html!!!)
|
||||
|
||||
THE FONT INSTALLATION GUIDE
|
||||
for the TTF to Type1 converter and fonts generated by it
|
||||
========================================================
|
||||
|
||||
There is historically a number of problems with the support of the 8-bit
|
||||
character encodings. This installation guide pays a lot of attention
|
||||
to the 8-bit issues, because these issues are responsible for the
|
||||
most of troubles during the installation of fonts. But they are
|
||||
not the only things covered in this guide, so it's worth reading
|
||||
even if all you need is plain ASCII. For convenience of reading
|
||||
I have marked the paragraphs dealing solely with 8-bit problems
|
||||
with characters *8*.
|
||||
|
||||
To simplify this installation the distribution package of the
|
||||
converter contains a number of scripts written in shell and
|
||||
Perl. So, to run them you will need a shell interpreter (Bourne-shell,
|
||||
POSIX-shell, Korn-shell are OK, ba-shell is probably also OK but not
|
||||
tested yet). The Perl scripts were tested with Perl5 but probably
|
||||
should work with Perl4 too. All the scripts are located in the
|
||||
`scripts' subdirectory.
|
||||
|
||||
This guide considers the following issues of installation of the
|
||||
fonts:
|
||||
|
||||
- X11
|
||||
- Ghostscript
|
||||
- MS Windows
|
||||
- Netscape Navigator/Communicator
|
||||
- Linux RPM package
|
||||
- FrameMaker
|
||||
- StarOffice
|
||||
|
||||
X11
|
||||
===
|
||||
|
||||
To simplify the conversion a set of scripts is provided with ttf2pt1.
|
||||
They are collected in the `scripts' subdirectory.
|
||||
|
||||
`Convert' is the master conversion script provided with ttf2pt1.
|
||||
When installed into a public directory it's named `ttf2pt1_convert'
|
||||
to avoid name collisions with the other programs.
|
||||
|
||||
It's called as:
|
||||
|
||||
convert [config-file]
|
||||
|
||||
If the configuration file is not specified as an argument then the file
|
||||
`convert.cfg' in the current directory is used. This file contains
|
||||
a set of configuration variables. The distribution contains a sample file
|
||||
file `convert.cfg.sample'. Please copy it to `convert.cfg',
|
||||
look inside it and change the configuration variables. The more stable
|
||||
configuration variables, such as the path names of the scripts and
|
||||
encoding files are located in `convert' itself, they are
|
||||
automatically updated when installing ttf2pt1.
|
||||
|
||||
Put all the TTF fonts you want to convert into some directory (this
|
||||
may be just the directory that already contains all the Windows
|
||||
fonts on a mounted FAT filesystem). If you have fonts in different
|
||||
source encoding then put the fonts in each of the encodings
|
||||
into a separate directory. Up to 10 source directories are
|
||||
supported. If you (in a rather unlikely case) have more source
|
||||
directories then you can make two separate runs of the converter,
|
||||
converting up to 10 directories at a time.
|
||||
|
||||
The variables in the configuration file are:
|
||||
|
||||
SRCDIRS - the list of directories (with absolute paths) with
|
||||
TTF fonts. Each line contains at least 3 fields: the name of the directory,
|
||||
the language of the fonts in it (if you have fonts for different
|
||||
languages you have to put them into the separate directories) and the
|
||||
encoding of the fonts. Again, if you have some of the TTF typefaces in
|
||||
one encoding, and some in another (say, CP-1251 and KOI-8), you have
|
||||
to put them into the separate source directories. Some lines may contain
|
||||
4 fields. Then the fourth field is the name of the external map to
|
||||
convert the Unicode fonts into the desirable encoding. This map is
|
||||
used instead of the built-in map for the specified language.
|
||||
|
||||
*8*
|
||||
An interesting thing is that some languages have more than one
|
||||
widely used character encodings. For example, the widely used
|
||||
encodings for Russian are IBM CP-866 (MS-DOS and Unix), KOI-8
|
||||
(Unix and VAX, also the standard Internet encoding), IBM CP-1251 (MS Windows).
|
||||
That's why I have provided the means to generate the converted fonts
|
||||
in more than one encoding. See the file encodings/README for
|
||||
details about the encoding tables. Actually, if you plan to use
|
||||
these fonts with Netscape Navigator better use the aliases
|
||||
cp-866 instead of ibm-866 and windows-1251 instead of ibm-1251
|
||||
because that's what Netscape wants.
|
||||
|
||||
DSTDIR - directory for the resulting Type1 fonts. Be careful!
|
||||
This directory gets completely wiped out before conversion,
|
||||
so don't use any already existing directory for this purpose.
|
||||
|
||||
DSTENC{language} - the list of encodings in which the destination
|
||||
fonts will be generated for each language. Each font of that
|
||||
language will be generated in each of the specified
|
||||
encodings. If you don't want any translation, just specify both
|
||||
SRCENC and DSTENC as iso8859-1 (or if you want any other encoding
|
||||
specified in the fonts.dir, copy the description of 8859-1 with
|
||||
new name and use this new name for SRCENC and DSTENC).
|
||||
|
||||
FOUNDRY - the foundry name to be used in the fonts.dir file. I have
|
||||
set it to `fromttf' to avoid name conflicts with any existing font for
|
||||
sure. But this foundry name is not registered in X11 standards and
|
||||
if you want to get the full standard compliance or have a font server
|
||||
that enforces such a compliance, use `misc'.
|
||||
|
||||
The next few parameters control the general behavior of the converter.
|
||||
They default values are set to something reasonable.
|
||||
|
||||
CORRECTWIDTH - if the value is set to YES then use the
|
||||
converter option -w, otherwise don't use it. See the description of
|
||||
this option in the README file.
|
||||
|
||||
REMOVET1A - if the value is set to YES then after
|
||||
conversion remove the un-encoded .t1a font files and the
|
||||
intermediate .xpfa font metric files.
|
||||
|
||||
INSTALLFONTMAP - a Ghostscript parameter, if the value is set to
|
||||
YES then install the entries for the new fonts
|
||||
right into the main Fontmap file. Otherwise just leave
|
||||
the file Fontmap.ttf in the Ghostscript configuration
|
||||
directory.
|
||||
|
||||
HINTSUBST - if the value is set to YES use the option
|
||||
-H, otherwise don't use it. This option enables the
|
||||
hint substitution technique. If you have not installed the X11 patch
|
||||
described above, use this option with great caution. See further
|
||||
description of this option in the README file.
|
||||
|
||||
ENFORCEISO - if the value is set to YES then
|
||||
disguise the resulting fonts as the fonts in ISOLatin1 encoding. Historically
|
||||
this was neccessary due to the way the installer scripts created the
|
||||
X11 font configuration files. It is not neccessary any more for this
|
||||
purpose. But if you plan to use these fonts with some other application
|
||||
that expects ISOLatin1 encoding then better enable this option.
|
||||
|
||||
ALLGLYPHS - if the value is set to YES then
|
||||
include all the glyphs from the source fonts into the resulting fonts, even
|
||||
if these glyphs are inaccessible. If it's set to NO then
|
||||
include only the glyphs which have codes assigned to them. The glyphs
|
||||
without codes can not be used directly. But some clever programs,
|
||||
such as the Type 1 library from XFree86 3.9 and higher can change
|
||||
the encoding on the fly and use another set of glyphs. If you have not
|
||||
installed the X11 patch described above, use this option with great
|
||||
caution. See further description of the option option -a in the
|
||||
README file.
|
||||
|
||||
GENUID - if the value is set to YES then use
|
||||
the option -uA of the converter to generate UniqueIDs for
|
||||
the converted fonts. The standard X11 Type 1 library does not use
|
||||
this ID, so it may only be neccessary for the other applications.
|
||||
The script is clever enough to generate different UniqueID for the
|
||||
same font converted to multiple encodings. Also after conversion it
|
||||
checks all the fonts generacted during the session for duplicated
|
||||
UniqueID and shows those. Still, this does not quarantee that these
|
||||
UniqueIDs won't overlap with some other fonts. The UniqueIDs are
|
||||
generated as hash values from the font names, so it's guaranteed
|
||||
that if the `convert' script runs multiple times it will
|
||||
generate the same UniqueIDs during each run. See further description
|
||||
of this option in the README file.
|
||||
|
||||
GENUID - if the value is set to YES then create
|
||||
the .pfb files, otherwise the .pfa files. The .pfb
|
||||
files are more compact but contain binary data, so you may experience some
|
||||
troubles when transferring them through the network.
|
||||
|
||||
The following parameters are used to locate the other scripts and
|
||||
configuration files. By default the scripts do a bit of guessing for them:
|
||||
they search in the ttf2pt1 installation directory if ttf2pt1
|
||||
was installed or otherwise suppose that you are running `convert' with
|
||||
`scripts' subdirectory being the current directory.
|
||||
|
||||
ENCDIR - directory containing the descriptions of encodings
|
||||
MAPDIR - directory containing the external map files
|
||||
|
||||
Besides that a few parameters are built into the `convert' script itself.
|
||||
You probably won't need to change them:
|
||||
|
||||
T1ASM, TTF2PT1, TRANS, T1FDIR, FORCEISO - paths to the other script
|
||||
|
||||
Also there are a few parameters controlling the installation of
|
||||
fonts for Ghostscript. Please look at their description in the
|
||||
Ghostscript section of documentation or in the ttf2pt1_x2gs(1)
|
||||
manual page before running `convert'. If these parameters are
|
||||
set, `convert' will call the `x2gs' script automatically
|
||||
to install the newly converted fonts in Ghostscript.
|
||||
|
||||
After creating the configuration file run the `convert' script. Look at
|
||||
the result and the log file in DSTDIR.
|
||||
|
||||
Add the directory with newly converted fonts to the configuration
|
||||
of X server or font server. For most of the systems this step is
|
||||
very straightforward. For HP-UX it's rather tricky and poorly
|
||||
documented, so the file FONTS.hpux gives a short description.
|
||||
|
||||
If you don't have the privileges of the root user, you still can
|
||||
configure your private font server. Just use some non-standard
|
||||
port number (see FONTS.hpux for an example, exept that you won't
|
||||
need all the HP-related stuff on any other system).
|
||||
|
||||
Known Problems
|
||||
--------------
|
||||
|
||||
- One catch is that the X11 Type 1 font library has a rather low limit
|
||||
on the font size. Because of this the fonts with more complicated
|
||||
outlines and the enabled hint substitution may not fit into
|
||||
this limit. The same applies to the fonts with very complicated
|
||||
outlines or with very many glyphs (especially the fonts with
|
||||
over 256 glyphs). So you will need to excercise caution with
|
||||
these options if you plan using these fonts with X11. Some vendors
|
||||
such as HP provide the Type 1 implementation licensed from Adobe
|
||||
which should have no such problem.
|
||||
|
||||
But there is a solution even for the generic X11. A patch located
|
||||
in the subdirectory `app/X11' fixes this problem as well
|
||||
as some other minor problems. Its description is provided in
|
||||
app/X11/README.
|
||||
|
||||
To fix the X11 font library, you have to get the X11 sources. I
|
||||
can recommend the ftp sites of the XFree86 project ftp://ftp.xfree86.org
|
||||
or of the Open Group ftp://ftp.x.org. This patch was made on the sources
|
||||
of XFree86 so you may have better success with applying it to the
|
||||
XFree86 distribution. After you have got the sources, make sure
|
||||
that you can compile them. Then apply the patch as described.
|
||||
Make sure that it was applied properly. Compile the sources again
|
||||
(actually, you need only the fonts library, the fonts server, and
|
||||
possibly the X server). It would be prudent now to save your old
|
||||
font library, font server and, possibly, X server. Then install
|
||||
the new recently compiled versions of these files. Of course,
|
||||
if you know someone who already has compiled these files for the
|
||||
same OS as yours, you can just copy the binary fles from him.
|
||||
|
||||
Alas, building the X11 system from the source code is not the
|
||||
easiest thing in the world and if you have no experience it
|
||||
can be quite difficult. In this case just avoid the aforementioned
|
||||
features or check each converted font to make sure that it
|
||||
works properly.
|
||||
|
||||
- The Type1 font library from the standard X11 distribution
|
||||
does not work on HP-UX (at least, up to 10.01). The font server
|
||||
supplied with HP-UX up to 10.01 is also broken. Starting from
|
||||
HP-UX 10.20 (I don't know about 10.10) they supply a proprietary font
|
||||
library and the converted fonts work fine with it, provided that
|
||||
they are configured properly (see the file FONTS.hpux).
|
||||
|
||||
- The fonts.scale files created by the older versions of the
|
||||
ttf2pt1 installation program (up to release 3.1) have conflicted
|
||||
with the language definitions of the Xfsft font server and
|
||||
parts of it included into XFree86. To overcome this incompatibility
|
||||
the never versions creats the fonts.scale file describing all the
|
||||
fonts as belonging to the adobe-fontspecific encoding and
|
||||
the fonts.alias file with the proper names. The drawback of
|
||||
this solution is that xlsfonts gives the list of twice more
|
||||
fonts. But as a side effect the option ENFORCEISO in
|
||||
`convert.cfg' is not required for X11 any more.
|
||||
|
||||
- The conversion script has no support for Eastern multi-plane fonts.
|
||||
Contribution of such a support would be welcome.
|
||||
|
||||
Ghostscript
|
||||
===========
|
||||
|
||||
The fonts generated with ttf2pt1 work fine with Ghostscript by
|
||||
themselves. The script `x2gs' (or `ttf2pt1_x2gs' when installed
|
||||
into a public directory, to avoid name conflicts with other
|
||||
programs) links the font files from the X11 direcotry into the Ghostscript
|
||||
directory and automatically creates the description file (Fontmap)
|
||||
in Ghostscript format.
|
||||
|
||||
It's called as:
|
||||
|
||||
x2gs [config-file]
|
||||
|
||||
If the configuration file is not specified as an argument then the file
|
||||
`convert.cfg' in the current directory is used, just like the
|
||||
`convert' script does. Indeed, this configuration file is used for
|
||||
both scripts.
|
||||
|
||||
The Ghostscript-related parameters in the configuration file are:
|
||||
|
||||
DSTDIR - the X11 font directory used by `x2gs' as the
|
||||
source of the fonts. This parameter is common with the X11
|
||||
configuration.
|
||||
|
||||
GSDIR - the base directory of Ghostsript. If this
|
||||
parameter is set to an empty string then `convert' won't
|
||||
call `x2gs'. So if you want to get only the X11 fonts
|
||||
installed then set this parameter to an empty string. This
|
||||
directory may vary on various system, so please check your
|
||||
system and set this value accordingly before running the script.
|
||||
|
||||
GSFONTDIR - the font directory of Ghostscript. In the standard
|
||||
Ghostscript installation it's a subdirectory of GSDIR
|
||||
but some systems may use completely different directories.
|
||||
|
||||
GSCONFDIR - the configuration subdirectory of Ghostscript
|
||||
that contains the Fontmap file.
|
||||
|
||||
INSTALLFONTMAP - if the value is set to YES then
|
||||
install the entries for the new fonts right into the main
|
||||
Fontmap file. Otherwise just leave the file Fontmap.ttf
|
||||
in the Ghostscript configuration directory.
|
||||
|
||||
|
||||
After preparing the configuration file run the script. It symbolicaly links
|
||||
all the font files and creates the description file Fontmap.ttf in
|
||||
GSCONDFIR. After that there are two choices.
|
||||
|
||||
If the option INSTALLFONTMAP was set to YES then
|
||||
the font descriptions are also automatically installed into the
|
||||
master Fontmap file. The script is clever enough to
|
||||
detect if it was run multiple times with the same directories
|
||||
and if so it replaces the old Fontmap entries with
|
||||
the new ones instead of just accumulating all of them. You
|
||||
may also run it multiple times for multiple X11 directories
|
||||
and all the results will be properly collected in the Fontmap.
|
||||
But it's your responsibility to watch that the names of the
|
||||
font files don't overlap. If the X11 font directory gets
|
||||
renamed then you have to remove its font entries from the
|
||||
Fontmap and only after that re-run `x2gs'
|
||||
for the new directory.
|
||||
|
||||
On the other hand if the option INSTALLFONTMAP was set to
|
||||
NO then go to the GSCONFDIR directory and insert the
|
||||
contents of Fontmap.ttf into the Fontmap file
|
||||
manually. This step may be left manual to make the installation
|
||||
a little bit more safe.
|
||||
|
||||
After that you may also want to redefine some of the aliases in
|
||||
Fontmap to refer to the newly installed fonts.
|
||||
But the redefinition of the aliases may be dangerous if the width of
|
||||
characters in the new font will be different from the old font.
|
||||
Alas, there is no visible solution of this problem yet.
|
||||
|
||||
MS Windows
|
||||
===========
|
||||
|
||||
Ttf2pt1 can be built on Windows either with native compiler or in
|
||||
POSIX emulation mode.
|
||||
|
||||
Native MS Windows compilers require a different way to build the converter
|
||||
instead of the Makefile (their make programs commonly are quite weird
|
||||
and limited in capabilities). An example of batch file winbuild.bat
|
||||
is provided for MS Visual C/C++. Probably it can be easily adapted for other
|
||||
32-bit Windows and DOS compilers. The important part is to define the
|
||||
preprocessor symbol WINDOWS during compilation.
|
||||
|
||||
Cygnus make almost supports full Makefiles but not quite. Seems
|
||||
like its POSIX support is also of the same quality "almost but not quite".
|
||||
So another command file cygbuild.sh is provided for Cygnus GNU C, also
|
||||
with the preprocessor symbol WINDOWS defined. It is intended to be run from
|
||||
the Cygnus BASH shell. To run the programs produced by the Cygnus compiler
|
||||
the Cygnus library file CYGWIN1.DLL should be copied first into
|
||||
C:\WINDOWS.
|
||||
|
||||
To run the accompanying scripts Perl for Windows will be required as well as
|
||||
other tools from the Cygnus set.
|
||||
|
||||
The Windows support was not particularly tested, so in case of problems with
|
||||
building or running the converter please let us know.
|
||||
|
||||
The pre-built code (possibly of an older version) of ttf2pt1 for MS Windows is
|
||||
available from the GnuWin32 project from
|
||||
|
||||
http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm
|
||||
|
||||
Netscape Navigator/Communicator
|
||||
===============================
|
||||
|
||||
Basically, the biggest problem with Netscape Navigator is that
|
||||
it has built-in fixed PostScript font names and built-in fixed
|
||||
glyph tables for them. Oh, no, that's two! Let's start over:
|
||||
basically the two biggest problems of Netscape Navigator are
|
||||
that (one)it has built-in fixed PostScript font names and (two)
|
||||
built-in fixed glyph tables for them and (three) it always
|
||||
assumes that the fonts have ISOLatin1 encoding. OK, let's
|
||||
start over again: basically the three biggest problems of Netscape
|
||||
Navigator are that (one) it has built-in fixed PostScript font names,
|
||||
(two) built-in fixed glyph tables for them and (three) it always
|
||||
assumes that the fonts have ISOLatin1 encoding and (four) it
|
||||
does not remember the scaled font size between the sessions.
|
||||
You did not expect such a Spanish Inquisition, did you ? (*)
|
||||
|
||||
Luckily, we have solutions for all of these problems. They are
|
||||
located in the subdirectory `app/netscape' and described
|
||||
in app/netscape/README.
|
||||
|
||||
-------
|
||||
*) See Monty Python's Flying Circus, episode 15
|
||||
|
||||
*8*
|
||||
Netscape and cyrillic fonts
|
||||
---------------------------
|
||||
(courtesy of Zvezdan Petkovic)
|
||||
|
||||
If you use TrueType fonts in your X, as I do, and you always get
|
||||
KOI8-R encoded pages, then your Netscape does not recognise windows-1251
|
||||
encoding. Microsoft TrueType fonts simply declare all encodings they
|
||||
can support including KOI8-R. For some reason, KOI8-R always wins over
|
||||
ISO-8859-5 in Netscape under X. If you are reading other cyrillic
|
||||
languages besides Russian, you might want to either erase KOI8-R entries
|
||||
from the fonts.dir and fonts.scale files, or alternatively fix Netscape.
|
||||
I put this line in my .Xdefaults.
|
||||
|
||||
Netscape*documentFonts.charset*koi8-r: iso-8859-5
|
||||
|
||||
Notice that you can still read Russian sites without trouble because
|
||||
Netscape translates KOI8-R to ISO-8859-5 on the fly. I read both Russian
|
||||
and Serbian sites with no trouble.
|
||||
|
||||
Note: If anybody knows the way to tell Netscape under Unix how to
|
||||
recognise {windows,ibm,cp}-1251 encoded fonts, I'd like to hear about that.
|
||||
|
||||
Linux RPM package
|
||||
=================
|
||||
|
||||
The spec file for the creation of a Linux RPM package is located in
|
||||
app/RPM. It has been contributed by Johan Vromans. When
|
||||
make all is ran in the main directory it among the other
|
||||
things creates the version of itself adapted to Linux in app/RPM,
|
||||
you may want to copy that version back to the main directory.
|
||||
|
||||
Warning: Please note that the install section is incomplete, and
|
||||
the installed scripts won't work until the paths inside them
|
||||
are corrected.
|
||||
|
||||
FrameMaker
|
||||
==========
|
||||
|
||||
The fonts and AFM files generated by the version 3.2 and higher
|
||||
should work with Framemaker without problems. The AFM files
|
||||
generated by the previous versions of the converter require a
|
||||
line added to them:
|
||||
|
||||
EncodingScheme FontSpecific
|
||||
|
||||
And the underscores in the font names of the font and AFM files
|
||||
generated by the older versions may need to be changed to dashes.
|
||||
|
||||
NOTE by Jason Baietto: Ignore the directions in the Frame on-line docs
|
||||
that say to put a "serverdict begin 0 exitserver" line in the pfa files.
|
||||
Doing this caused both my printer and ghostscript to choke on the resulting
|
||||
output from FrameMaker, so I would not advise doing this (though your
|
||||
mileage may vary).
|
||||
|
||||
StarOffice
|
||||
==========
|
||||
|
||||
StarOffice 5.1x has been reported to crash if the .afm file contains
|
||||
spaces in the values of such statements as Version, Weight etc.
|
||||
These spaces are permitted by the Adobe spec, so this is a problem of
|
||||
StarOffice. The easiest way to fix these .afm files for StarOffice
|
||||
is to remove spaces in these strings or remove these strings (in case if
|
||||
they are optional) at all. This can be done automatically with a sed
|
||||
script. It seems that StarOffice 5.2 has this problem fixed, so we decided to
|
||||
spend no efforts on providing workarounds for 5.1 with ttf2pt1.
|
||||
|
||||
107
pdf/lib/ttf2ufm/src/FONTS.hpux
Executable file
107
pdf/lib/ttf2ufm/src/FONTS.hpux
Executable file
@@ -0,0 +1,107 @@
|
||||
Sergey A. Babkin
|
||||
<babkin@bellatlantic.net> or <sab123@hotmail.com>
|
||||
(Do not edit this file, it is generated from FONTS.hpux.html!!!)
|
||||
|
||||
How to install new Type1 fonts on an HP-UX 10.20 machine
|
||||
--------------------------------------------------------
|
||||
|
||||
1. Add the font files to /usr/lib/X11/fonts/type1.st/typefaces.
|
||||
|
||||
2. Add the font descriptions to
|
||||
/usr/lib/X11/fonts/type1.st/typefaces/fonts.scale. Run `mkfontdir'
|
||||
in /usr/lib/X11/fonts/type1.st/typefaces. In the descriptions
|
||||
you have to specify the font manufacturer as `misc', like:
|
||||
|
||||
-misc-courier-...
|
||||
|
||||
3. Copy /usr/lib/X11/fonts/type1.st/typefaces/fonts.dir to
|
||||
/usr/lib/X11/fonts/type1.st/licenses/STSYSTEM/DISPLAYS/fonts.dir.
|
||||
Better yet, create a symbolic link.
|
||||
|
||||
4. For each font encoding you are going to use create a description
|
||||
file in /usr/lib/X11/fonts/stadmin/type1/charsets. Of course, if you
|
||||
are going to use the same fonts in several encodings, the best way
|
||||
would be to create fair descriptions of charsets and really store
|
||||
only one encoding in typefaces, all the others will be produced
|
||||
automatically. That's not difficult at all.
|
||||
But the simplest way is to just copy the file cp.iso8859-1
|
||||
to cp.<your-encoding-name>, like cp.koi8-r.
|
||||
|
||||
5. Restart you X server and/or font server.
|
||||
|
||||
What if you don't have the `root' privileges ?
|
||||
----------------------------------------------
|
||||
|
||||
You still can run the font server and configure your X server
|
||||
to get the fonts from it.
|
||||
|
||||
Further let's suppose that the name on which you are going
|
||||
to run the font server is named `somehost'. Login to it
|
||||
and configure the font server.
|
||||
|
||||
First, choose some unused port. Numbers around 9000 are a good
|
||||
choice. Verify that this port is not used by somebody else
|
||||
by entering
|
||||
|
||||
netstat -naf inet |grep 9000
|
||||
|
||||
and look what happens. If you get nothing, that's good, this
|
||||
port is unused. If you get some lines of data, try abother port.
|
||||
|
||||
Go to you home directory $HOME and create some directory for
|
||||
your font server, say, $HOME/fs. Copy the directory structure
|
||||
of /usr/lib/X11/fonts/type1.st into $HOME/fs, so that in result
|
||||
you get $HOME/fs/type1.st/<whatever was there>. Copy the directory
|
||||
structure of /usr/lib/X11/fonts/stadmin/type1/charsets into $HOME/fs,
|
||||
so that in result you get $HOME/fs/charsets/<whatever was there>.
|
||||
Install the new fonts in these directorues as described above.
|
||||
|
||||
Then create the fontserver configuration file, say, $HOME/fs/xfs.cfg.
|
||||
The sample contents (supposing that my $HOME is equal to /home/babkin)
|
||||
is:
|
||||
|
||||
--------------8<----------- cut here -----------------------------
|
||||
# font server configuration file
|
||||
# $XConsortium: config.cpp,v 1.7 91/08/22 11:39:59 rws Exp $
|
||||
|
||||
rasterizers = /usr/lib/X11/fs/ufstrast.sl,/usr/lib/X11/fs/iforast.sl
|
||||
|
||||
clone-self = off
|
||||
use-syslog = off
|
||||
catalogue = /home/babkin/fs/type1.st
|
||||
# in decipoints
|
||||
default-point-size = 120
|
||||
default-resolutions = 100,100,75,75
|
||||
port=9000
|
||||
error-file=/home/babkin/fs/fs.err
|
||||
--------------8<----------- cut here -----------------------------
|
||||
|
||||
Then create the script to start your font server, say, $HOME/fs/runme:
|
||||
|
||||
--------------8<----------- cut here -----------------------------
|
||||
TYPE1_CODEPAGE_DIR=$HOME/fs/charsets
|
||||
export TYPE1_CODEPAGE_DIR
|
||||
kill `ps -ef | grep $HOME/\[f\]s/xfs.cfg | awk '{print $2}'`;
|
||||
nohup xfs -config $HOME/fs/xfs.cfg &
|
||||
--------------8<----------- cut here -----------------------------
|
||||
|
||||
Don't forget to make $HOME/fs/runme executable. Then you can
|
||||
execute it manually or from you .profile.
|
||||
|
||||
After you get your font server running, just execute the following
|
||||
command (with proper host name and port number) in your X session
|
||||
|
||||
xset fp+ tcp/somehost:9000
|
||||
|
||||
to get the access to your private font server. You can add this
|
||||
information to the configuration data of your X server or just
|
||||
put it also into your .profile. In the latter case the best way
|
||||
to do that would be like:
|
||||
|
||||
--------------8<----------- cut here -----------------------------
|
||||
...
|
||||
$HOME/fs/runme
|
||||
sleep 2 # give it some time to start
|
||||
xset fp+ tcp/somehost:9000
|
||||
...
|
||||
--------------8<----------- cut here -----------------------------
|
||||
197
pdf/lib/ttf2ufm/src/FONTS.hpux.html
Executable file
197
pdf/lib/ttf2ufm/src/FONTS.hpux.html
Executable file
@@ -0,0 +1,197 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
How to install new Type1 fonts on an HP-UX 10.20 machine
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
Sergey A. Babkin
|
||||
<br>
|
||||
<A HREF="mailto:babkin@bellatlantic.net">
|
||||
<babkin@bellatlantic.net></A> or <A HREF="mailto:sab123@hotmail.com"><sab123@hotmail.com></A>
|
||||
<p>
|
||||
<!
|
||||
(Do not edit this file, it is generated from FONTS.hpux.html!!!)
|
||||
>
|
||||
|
||||
<H3>
|
||||
How to install new Type1 fonts on an HP-UX 10.20 machine
|
||||
</H3>
|
||||
<!
|
||||
--------------------------------------------------------
|
||||
>
|
||||
|
||||
1. Add the font files to <tt>/usr/lib/X11/fonts/type1.st/typefaces</tt>.
|
||||
<p>
|
||||
|
||||
2. Add the font descriptions to
|
||||
<tt>/usr/lib/X11/fonts/type1.st/typefaces/fonts.scale</tt>. Run `mkfontdir'
|
||||
in <tt>/usr/lib/X11/fonts/type1.st/typefaces</tt>. In the descriptions
|
||||
you have to specify the font manufacturer as `misc', like:
|
||||
<p>
|
||||
|
||||
<tt>
|
||||
-misc-courier-...
|
||||
</tt>
|
||||
<p>
|
||||
|
||||
3. Copy <tt>/usr/lib/X11/fonts/type1.st/typefaces/fonts.dir</tt> to
|
||||
<tt>/usr/lib/X11/fonts/type1.st/licenses/STSYSTEM/DISPLAYS/fonts.dir</tt>.
|
||||
Better yet, create a symbolic link.
|
||||
<p>
|
||||
|
||||
4. For each font encoding you are going to use create a description
|
||||
file in <tt>/usr/lib/X11/fonts/stadmin/type1/charsets</tt>. Of course, if you
|
||||
are going to use the same fonts in several encodings, the best way
|
||||
would be to create fair descriptions of charsets and really store
|
||||
only one encoding in typefaces, all the others will be produced
|
||||
automatically. That's not difficult at all.
|
||||
But the simplest way is to just copy the file <tt>cp.iso8859-1</tt>
|
||||
to <tt>cp.<i><your-encoding-name></i></tt>, like <tt>cp.koi8-r</tt>.
|
||||
<p>
|
||||
|
||||
5. Restart you X server and/or font server.
|
||||
<p>
|
||||
|
||||
<H4>
|
||||
What if you don't have the `root' privileges ?
|
||||
</H4>
|
||||
<!
|
||||
----------------------------------------------
|
||||
>
|
||||
|
||||
You still can run the font server and configure your X server
|
||||
to get the fonts from it.
|
||||
<p>
|
||||
|
||||
Further let's suppose that the name on which you are going
|
||||
to run the font server is named `somehost'. Login to it
|
||||
and configure the font server.
|
||||
<p>
|
||||
|
||||
First, choose some unused port. Numbers around 9000 are a good
|
||||
choice. Verify that this port is not used by somebody else
|
||||
by entering
|
||||
<p>
|
||||
|
||||
<blockquote><tt>
|
||||
netstat -naf inet |grep 9000
|
||||
</tt></blockquote>
|
||||
|
||||
and look what happens. If you get nothing, that's good, this
|
||||
port is unused. If you get some lines of data, try abother port.
|
||||
<p>
|
||||
|
||||
Go to you home directory <tt>$HOME</tt> and create some directory for
|
||||
your font server, say, <tt>$HOME/fs</tt>. Copy the directory structure
|
||||
of <tt>/usr/lib/X11/fonts/type1.st</tt> into <tt>$HOME/fs</tt>, so that in result
|
||||
you get <tt>$HOME/fs/type1.st/<i><whatever was there></i></tt>. Copy the directory
|
||||
structure of <tt>/usr/lib/X11/fonts/stadmin/type1/charsets</tt> into <tt>$HOME/fs</tt>,
|
||||
so that in result you get <tt>$HOME/fs/charsets/<i><whatever was there></i></tt>.
|
||||
Install the new fonts in these directorues as described above.
|
||||
<p>
|
||||
|
||||
Then create the fontserver configuration file, say, <tt>$HOME/fs/xfs.cfg</tt>.
|
||||
The sample contents (supposing that my <tt>$HOME</tt> is equal to <tt>/home/babkin</tt>)
|
||||
is:
|
||||
<p>
|
||||
|
||||
<!
|
||||
--------------8<----------- cut here -----------------------------
|
||||
>
|
||||
<hr>
|
||||
<tt>
|
||||
# font server configuration file
|
||||
<br>
|
||||
# $XConsortium: config.cpp,v 1.7 91/08/22 11:39:59 rws Exp $
|
||||
<br>
|
||||
|
||||
<br>
|
||||
rasterizers = /usr/lib/X11/fs/ufstrast.sl,/usr/lib/X11/fs/iforast.sl
|
||||
<br>
|
||||
|
||||
<br>
|
||||
clone-self = off
|
||||
<br>
|
||||
use-syslog = off
|
||||
<br>
|
||||
catalogue = /home/babkin/fs/type1.st
|
||||
<br>
|
||||
# in decipoints
|
||||
<br>
|
||||
default-point-size = 120
|
||||
<br>
|
||||
default-resolutions = 100,100,75,75
|
||||
<br>
|
||||
port=9000
|
||||
<br>
|
||||
error-file=/home/babkin/fs/fs.err
|
||||
</tt>
|
||||
<hr>
|
||||
<!
|
||||
--------------8<----------- cut here -----------------------------
|
||||
>
|
||||
<p>
|
||||
|
||||
Then create the script to start your font server, say, <tt>$HOME/fs/runme</tt>:
|
||||
<p>
|
||||
|
||||
<!
|
||||
--------------8<----------- cut here -----------------------------
|
||||
>
|
||||
<hr>
|
||||
<tt>
|
||||
TYPE1_CODEPAGE_DIR=$HOME/fs/charsets
|
||||
<br>
|
||||
export TYPE1_CODEPAGE_DIR
|
||||
<br>
|
||||
kill `ps -ef | grep $HOME/\[f\]s/xfs.cfg | awk '{print $2}'`;
|
||||
<br>
|
||||
nohup xfs -config $HOME/fs/xfs.cfg &
|
||||
</tt>
|
||||
<hr>
|
||||
<!
|
||||
--------------8<----------- cut here -----------------------------
|
||||
>
|
||||
<p>
|
||||
|
||||
Don't forget to make <tt>$HOME/fs/runme</tt> executable. Then you can
|
||||
execute it manually or from you .profile.
|
||||
<p>
|
||||
|
||||
After you get your font server running, just execute the following
|
||||
command (with proper host name and port number) in your X session
|
||||
<p>
|
||||
|
||||
<blockquote><tt>
|
||||
xset fp+ tcp/somehost:9000
|
||||
</tt></blockquote>
|
||||
|
||||
to get the access to your private font server. You can add this
|
||||
information to the configuration data of your X server or just
|
||||
put it also into your .profile. In the latter case the best way
|
||||
to do that would be like:
|
||||
<p>
|
||||
|
||||
<!
|
||||
--------------8<----------- cut here -----------------------------
|
||||
>
|
||||
<hr>
|
||||
<tt>
|
||||
...
|
||||
<br>
|
||||
$HOME/fs/runme
|
||||
<br>
|
||||
sleep 2 # give it some time to start
|
||||
<br>
|
||||
xset fp+ tcp/somehost:9000
|
||||
<br>
|
||||
...
|
||||
</tt>
|
||||
<hr>
|
||||
<!
|
||||
--------------8<----------- cut here -----------------------------
|
||||
>
|
||||
<p>
|
||||
</BODY>
|
||||
</HTML>
|
||||
708
pdf/lib/ttf2ufm/src/FONTS.html
Executable file
708
pdf/lib/ttf2ufm/src/FONTS.html
Executable file
@@ -0,0 +1,708 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
The ttf2pt1 font installation guide
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
Sergey A. Babkin
|
||||
<br>
|
||||
<A HREF="mailto:babkin@users.sourceforge.net">
|
||||
<babkin@bellatlantic.net></A> or <A HREF="mailto:sab123@hotmail.com"><sab123@hotmail.com></A>
|
||||
<p>
|
||||
<!
|
||||
(Do not edit this file, it is generated from FONTS.html!!!)
|
||||
>
|
||||
|
||||
<!-- =defdoc cv ttf2pt1_convert 1 -->
|
||||
<!-- =defdoc gs ttf2pt1_x2gs 1 -->
|
||||
<H2>
|
||||
THE FONT INSTALLATION GUIDE
|
||||
<br>
|
||||
for the TTF to Type1 converter and fonts generated by it
|
||||
</H2>
|
||||
<!
|
||||
========================================================
|
||||
>
|
||||
|
||||
There is historically a number of problems with the support of the 8-bit
|
||||
character encodings. This installation guide pays a lot of attention
|
||||
to the 8-bit issues, because these issues are responsible for the
|
||||
most of troubles during the installation of fonts. But they are
|
||||
not the only things covered in this guide, so it's worth reading
|
||||
even if all you need is plain ASCII. For convenience of reading
|
||||
I have marked the paragraphs dealing solely with 8-bit problems
|
||||
with characters <FONT COLOR="#3333FF"><FONT SIZE=-1>*8*</FONT></FONT>.
|
||||
<p>
|
||||
|
||||
To simplify this installation the distribution package of the
|
||||
converter contains a number of scripts written in shell and
|
||||
Perl. So, to run them you will need a shell interpreter (Bourne-shell,
|
||||
POSIX-shell, Korn-shell are OK, ba-shell is probably also OK but not
|
||||
tested yet). The Perl scripts were tested with Perl5 but probably
|
||||
should work with Perl4 too. All the scripts are located in the
|
||||
`scripts' subdirectory.
|
||||
<p>
|
||||
|
||||
This guide considers the following issues of installation of the
|
||||
fonts:
|
||||
<p>
|
||||
|
||||
<b>
|
||||
<ul>
|
||||
<li> <A HREF="#X11">X11</A><br>
|
||||
<li> <A HREF="#gs">Ghostscript</A><br>
|
||||
<li> <A HREF="#win">MS Windows</A><br>
|
||||
<li> <A HREF="#netscape">Netscape Navigator/Communicator</A><br>
|
||||
<li> <A HREF="#rpm">Linux RPM package</A><br>
|
||||
<li> <A HREF="#framemaker">FrameMaker</A><br>
|
||||
<li> <A HREF="#soffice">StarOffice</A><br>
|
||||
</ul>
|
||||
</b><p>
|
||||
|
||||
<A NAME="X11"></A>
|
||||
<H3>
|
||||
X11
|
||||
</H3>
|
||||
<!
|
||||
===
|
||||
>
|
||||
|
||||
<!-- =section cv NAME -->
|
||||
<!-- =text B<ttf2pt1_convert> - convenience font conversion script -->
|
||||
<!-- =stop -->
|
||||
To simplify the conversion a set of scripts is provided with <b>ttf2pt1</b>.
|
||||
They are collected in the `<TT>scripts</TT>' subdirectory.
|
||||
<p>
|
||||
|
||||
<!-- =section cv DESCRIPTION -->
|
||||
`<b>Convert</b>' is the master conversion script provided with ttf2pt1.
|
||||
When installed into a public directory it's named `<b>ttf2pt1_convert</b>'
|
||||
to avoid name collisions with the other programs.
|
||||
<p>
|
||||
<!-- =stop -->
|
||||
|
||||
It's called as:
|
||||
<p>
|
||||
|
||||
<!-- =section cv SYNOPSIS -->
|
||||
<!-- =text ttf2pt1_convert B<[config-file]> -->
|
||||
<!-- =stop -->
|
||||
<blockquote>
|
||||
convert <i>[config-file]</i>
|
||||
</blockquote>
|
||||
|
||||
<!-- =section cv DESCRIPTION -->
|
||||
If the configuration file is not specified as an argument then the file
|
||||
`<TT>convert.cfg</TT>' in the current directory is used. This file contains
|
||||
a set of configuration variables. The distribution contains a sample file
|
||||
file `<TT>convert.cfg.sample</TT>'. Please copy it to `<TT>convert.cfg</TT>',
|
||||
look inside it and change the configuration variables. The more stable
|
||||
configuration variables, such as the path names of the scripts and
|
||||
encoding files are located in `<TT>convert</TT>' itself, they are
|
||||
automatically updated when installing <b>ttf2pt1</b>.
|
||||
<p>
|
||||
|
||||
Put all the TTF fonts you want to convert into some directory (this
|
||||
may be just the directory that already contains all the Windows
|
||||
fonts on a mounted FAT filesystem). If you have fonts in different
|
||||
source encoding then put the fonts in each of the encodings
|
||||
into a separate directory. Up to 10 source directories are
|
||||
supported. If you (in a rather unlikely case) have more source
|
||||
directories then you can make two separate runs of the converter,
|
||||
converting up to 10 directories at a time.
|
||||
<p>
|
||||
|
||||
The variables in the configuration file are:
|
||||
<p>
|
||||
|
||||
<!-- ==over 2 -->
|
||||
<!-- ==item * -->
|
||||
<B><tt>SRCDIRS</tt></B> - the list of directories (with absolute paths) with
|
||||
TTF fonts. Each line contains at least 3 fields: the name of the directory,
|
||||
the language of the fonts in it (if you have fonts for different
|
||||
languages you have to put them into the separate directories) and the
|
||||
encoding of the fonts. Again, if you have some of the TTF typefaces in
|
||||
one encoding, and some in another (say, CP-1251 and KOI-8), you have
|
||||
to put them into the separate source directories. Some lines may contain
|
||||
4 fields. Then the fourth field is the name of the external map to
|
||||
convert the Unicode fonts into the desirable encoding. This map is
|
||||
used instead of the built-in map for the specified language.
|
||||
<p>
|
||||
|
||||
<FONT COLOR="#3333FF"><FONT SIZE=-1>*8*</FONT></FONT>
|
||||
An interesting thing is that some languages have more than one
|
||||
widely used character encodings. For example, the widely used
|
||||
encodings for Russian are IBM CP-866 (MS-DOS and Unix), KOI-8
|
||||
(Unix and VAX, also the standard Internet encoding), IBM CP-1251 (MS Windows).
|
||||
That's why I have provided the means to generate the converted fonts
|
||||
in more than one encoding. See the file <A HREF="encodings/README.html">encodings/README</A> for
|
||||
details about the encoding tables. Actually, if you plan to use
|
||||
these fonts with Netscape Navigator better use the aliases
|
||||
cp-866 instead of ibm-866 and windows-1251 instead of ibm-1251
|
||||
because that's what Netscape wants.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>DSTDIR</tt></b> - directory for the resulting Type1 fonts. Be careful!
|
||||
This directory gets completely wiped out before conversion,
|
||||
so don't use any already existing directory for this purpose.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>DSTENC<i>{language}</i></tt></b> - the list of encodings in which the destination
|
||||
fonts will be generated for each language. Each font of that
|
||||
language will be generated in each of the specified
|
||||
encodings. If you don't want any translation, just specify both
|
||||
<tt>SRCENC</tt> and <tt>DSTENC</tt> as iso8859-1 (or if you want any other encoding
|
||||
specified in the fonts.dir, copy the description of 8859-1 with
|
||||
new name and use this new name for <tt>SRCENC</tt> and <tt>DSTENC</tt>).
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>FOUNDRY</tt></b> - the foundry name to be used in the fonts.dir file. I have
|
||||
set it to `fromttf' to avoid name conflicts with any existing font for
|
||||
sure. But this foundry name is not registered in X11 standards and
|
||||
if you want to get the full standard compliance or have a font server
|
||||
that enforces such a compliance, use `misc'.
|
||||
<p>
|
||||
<!-- ==back -->
|
||||
|
||||
The next few parameters control the general behavior of the converter.
|
||||
They default values are set to something reasonable.
|
||||
<p>
|
||||
|
||||
<!-- ==over 2 -->
|
||||
<!-- ==item * -->
|
||||
<b><tt>CORRECTWIDTH</tt></b> - if the value is set to <b><tt>YES</tt></b> then use the
|
||||
converter option <tt><b>-w</b></tt>, otherwise don't use it. See the description of
|
||||
this option in the <A HREF="README.html">README</A> file.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>REMOVET1A</tt></b> - if the value is set to <b><tt>YES</tt></b> then after
|
||||
conversion remove the un-encoded <tt>.t1a</tt> font files and the
|
||||
intermediate <tt>.xpfa</tt> font metric files.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>INSTALLFONTMAP</tt></b> - a Ghostscript parameter, if the value is set to
|
||||
<b><tt>YES</tt></b> then install the entries for the new fonts
|
||||
right into the main <tt>Fontmap</tt> file. Otherwise just leave
|
||||
the file <tt>Fontmap.ttf</tt> in the Ghostscript configuration
|
||||
directory.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>HINTSUBST</tt></b> - if the value is set to <b><tt>YES</tt></b> use the option
|
||||
<tt><b>-H</b></tt>, otherwise don't use it. This option enables the
|
||||
hint substitution technique. If you have not installed the X11 patch
|
||||
described above, use this option with great caution. See further
|
||||
description of this option in the <A HREF="README.html">README</A> file.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>ENFORCEISO</tt></b> - if the value is set to <b><tt>YES</tt></b> then
|
||||
disguise the resulting fonts as the fonts in ISOLatin1 encoding. Historically
|
||||
this was neccessary due to the way the installer scripts created the
|
||||
X11 font configuration files. It is not neccessary any more for this
|
||||
purpose. But if you plan to use these fonts with some other application
|
||||
that expects ISOLatin1 encoding then better enable this option.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>ALLGLYPHS</tt></b> - if the value is set to <b><tt>YES</tt></b> then
|
||||
include all the glyphs from the source fonts into the resulting fonts, even
|
||||
if these glyphs are inaccessible. If it's set to <b><tt>NO</tt></b> then
|
||||
include only the glyphs which have codes assigned to them. The glyphs
|
||||
without codes can not be used directly. But some clever programs,
|
||||
such as the Type 1 library from XFree86 3.9 and higher can change
|
||||
the encoding on the fly and use another set of glyphs. If you have not
|
||||
installed the X11 patch described above, use this option with great
|
||||
caution. See further description of the option option <tt><b>-a</b></tt> in the
|
||||
<A HREF="README.html">README</A> file.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>GENUID</tt></b> - if the value is set to <b><tt>YES</tt></b> then use
|
||||
the option <tt><b>-uA</b></tt> of the converter to generate UniqueIDs for
|
||||
the converted fonts. The standard X11 Type 1 library does not use
|
||||
this ID, so it may only be neccessary for the other applications.
|
||||
The script is clever enough to generate different UniqueID for the
|
||||
same font converted to multiple encodings. Also after conversion it
|
||||
checks all the fonts generacted during the session for duplicated
|
||||
UniqueID and shows those. Still, this does not quarantee that these
|
||||
UniqueIDs won't overlap with some other fonts. The UniqueIDs are
|
||||
generated as hash values from the font names, so it's guaranteed
|
||||
that if the `<tt>convert</tt>' script runs multiple times it will
|
||||
generate the same UniqueIDs during each run. See further description
|
||||
of this option in the <A HREF="README.html">README</A> file.
|
||||
<p>
|
||||
|
||||
<!-- ==item * -->
|
||||
<b><tt>GENUID</tt></b> - if the value is set to <b><tt>YES</tt></b> then create
|
||||
the <tt>.pfb</tt> files, otherwise the <tt>.pfa</tt> files. The <tt>.pfb</tt>
|
||||
files are more compact but contain binary data, so you may experience some
|
||||
troubles when transferring them through the network.
|
||||
<p>
|
||||
<!-- ==back -->
|
||||
|
||||
The following parameters are used to locate the other scripts and
|
||||
configuration files. By default the scripts do a bit of guessing for them:
|
||||
they search in the <b>ttf2pt1</b> installation directory if <b>ttf2pt1</b>
|
||||
was installed or otherwise suppose that you are running `<tt>convert</tt>' with
|
||||
`<tt>scripts</tt>' subdirectory being the current directory.
|
||||
<p>
|
||||
|
||||
<!-- ==over 2 -->
|
||||
<!-- ==item * -->
|
||||
<b><tt>ENCDIR</tt></b> - directory containing the descriptions of encodings
|
||||
<br>
|
||||
<!-- ==item * -->
|
||||
<b><tt>MAPDIR</tt></b> - directory containing the external map files
|
||||
<p>
|
||||
<!-- ==back -->
|
||||
|
||||
Besides that a few parameters are built into the `<tt>convert</tt>' script itself.
|
||||
You probably won't need to change them:
|
||||
<p>
|
||||
|
||||
<!-- ==over 2 -->
|
||||
<!-- ==item * -->
|
||||
<tt><b>T1ASM</b></tt>, <tt><b>TTF2PT1</b></tt>, <tt><b>TRANS</b></tt>, <tt><b>T1FDIR</b></tt>, <tt><b>FORCEISO</b></tt> - paths to the other script
|
||||
<p>
|
||||
<!-- ==back -->
|
||||
|
||||
Also there are a few parameters controlling the installation of
|
||||
fonts for Ghostscript. Please look at their description in the
|
||||
<A HREF="#gs">Ghostscript</a> section of documentation or in the <b>ttf2pt1_x2gs(1)</b>
|
||||
manual page before running `<tt>convert</tt>'. If these parameters are
|
||||
set, `<tt>convert</tt>' will call the `<tt>x2gs</tt>' script automatically
|
||||
to install the newly converted fonts in Ghostscript.
|
||||
<p>
|
||||
|
||||
After creating the configuration file run the `<tt>convert</tt>' script. Look at
|
||||
the result and the log file in <tt>DSTDIR</tt>.
|
||||
<p>
|
||||
|
||||
Add the directory with newly converted fonts to the configuration
|
||||
of X server or font server. For most of the systems this step is
|
||||
very straightforward. For HP-UX it's rather tricky and poorly
|
||||
documented, so the file <A HREF="FONTS.hpux.html">FONTS.hpux</A> gives a short description.
|
||||
<p>
|
||||
|
||||
If you don't have the privileges of the root user, you still can
|
||||
configure your private font server. Just use some non-standard
|
||||
port number (see <A HREF="FONTS.hpux.html">FONTS.hpux</A> for an example, exept that you won't
|
||||
need all the HP-related stuff on any other system).
|
||||
<p>
|
||||
<!-- =stop -->
|
||||
|
||||
<H4>
|
||||
Known Problems
|
||||
</H4>
|
||||
<!
|
||||
--------------
|
||||
>
|
||||
<!-- =section cv BUGS -->
|
||||
<!-- ==head2 Known problems -->
|
||||
|
||||
<ul>
|
||||
<li> One catch is that the X11 Type 1 font library has a rather low limit
|
||||
on the font size. Because of this the fonts with more complicated
|
||||
outlines and the enabled hint substitution may not fit into
|
||||
this limit. The same applies to the fonts with very complicated
|
||||
outlines or with very many glyphs (especially the fonts with
|
||||
over 256 glyphs). So you will need to excercise caution with
|
||||
these options if you plan using these fonts with X11. Some vendors
|
||||
such as HP provide the Type 1 implementation licensed from Adobe
|
||||
which should have no such problem.
|
||||
<p>
|
||||
|
||||
But there is a solution even for the generic X11. A patch located
|
||||
in the subdirectory `<tt>app/X11</tt>' fixes this problem as well
|
||||
as some other minor problems. Its description is provided in
|
||||
<A HREF="app/X11/README.html">app/X11/README</A>.
|
||||
<p>
|
||||
|
||||
To fix the X11 font library, you have to get the X11 sources. I
|
||||
can recommend the ftp sites of the XFree86 project <A HREF="ftp://ftp.xfree86.org">ftp://ftp.xfree86.org</A>
|
||||
or of the Open Group <A HREF="ftp://ftp.x.org">ftp://ftp.x.org</A>. This patch was made on the sources
|
||||
of XFree86 so you may have better success with applying it to the
|
||||
XFree86 distribution. After you have got the sources, make sure
|
||||
that you can compile them. Then apply the patch as described.
|
||||
Make sure that it was applied properly. Compile the sources again
|
||||
(actually, you need only the fonts library, the fonts server, and
|
||||
possibly the X server). It would be prudent now to save your old
|
||||
font library, font server and, possibly, X server. Then install
|
||||
the new recently compiled versions of these files. Of course,
|
||||
if you know someone who already has compiled these files for the
|
||||
same OS as yours, you can just copy the binary fles from him.
|
||||
<p>
|
||||
|
||||
Alas, building the X11 system from the source code is not the
|
||||
easiest thing in the world and if you have no experience it
|
||||
can be quite difficult. In this case just avoid the aforementioned
|
||||
features or check each converted font to make sure that it
|
||||
works properly.
|
||||
<p>
|
||||
|
||||
<li> The Type1 font library from the standard X11 distribution
|
||||
does not work on HP-UX (at least, up to 10.01). The font server
|
||||
supplied with HP-UX up to 10.01 is also broken. Starting from
|
||||
HP-UX 10.20 (I don't know about 10.10) they supply a proprietary font
|
||||
library and the converted fonts work fine with it, provided that
|
||||
they are configured properly (see the file <A HREF="FONTS.hpux.html">FONTS.hpux</A>).
|
||||
<p>
|
||||
|
||||
<li> The <tt>fonts.scale</tt> files created by the older versions of the
|
||||
<tt>ttf2pt1</tt> installation program (up to release 3.1) have conflicted
|
||||
with the language definitions of the <tt>Xfsft</tt> font server and
|
||||
parts of it included into XFree86. To overcome this incompatibility
|
||||
the never versions creats the <tt>fonts.scale</tt> file describing all the
|
||||
fonts as belonging to the <tt>adobe-fontspecific</tt> encoding and
|
||||
the <tt>fonts.alias</tt> file with the proper names. The drawback of
|
||||
this solution is that <tt>xlsfonts</tt> gives the list of twice more
|
||||
fonts. But as a side effect the option <tt><b>ENFORCEISO</b></tt> in
|
||||
`<tt>convert.cfg</tt>' is not required for X11 any more.
|
||||
<p>
|
||||
|
||||
<li> The conversion script has no support for Eastern multi-plane fonts.
|
||||
Contribution of such a support would be welcome.
|
||||
<p>
|
||||
</ul>
|
||||
<!-- =stop -->
|
||||
<!-- =section cv FILES -->
|
||||
<!-- ==over 2 -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/scripts/convert.cfg.sample -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/scripts/* -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/README -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/FONTS -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/* -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_BINDIR/ttf2pt1 -->
|
||||
<!-- ==back -->
|
||||
<!-- =stop -->
|
||||
<!-- =section cv SEE ALSO -->
|
||||
<!-- ==over 4 -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text L<ttf2pt1(1)> -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text L<ttf2pt1_x2gs(1)> -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text L<t1asm(1)> -->
|
||||
<!-- ==back -->
|
||||
<!-- =stop -->
|
||||
|
||||
<A NAME="gs"></A>
|
||||
<H3>
|
||||
Ghostscript
|
||||
</H3>
|
||||
<!
|
||||
===========
|
||||
>
|
||||
<!-- =section gs NAME -->
|
||||
<!-- =text B<ttf2pt1_x2gs> - font installer for Ghostscript -->
|
||||
<!-- =stop -->
|
||||
|
||||
<!-- =section gs DESCRIPTION -->
|
||||
The fonts generated with <b>ttf2pt1</b> work fine with Ghostscript by
|
||||
themselves. The script `<b>x2gs</b>' (or `<b>ttf2pt1_x2gs</b>' when installed
|
||||
into a public directory, to avoid name conflicts with other
|
||||
programs) links the font files from the X11 direcotry into the Ghostscript
|
||||
directory and automatically creates the description file (<tt>Fontmap</tt>)
|
||||
in Ghostscript format.
|
||||
<!-- =stop -->
|
||||
|
||||
It's called as:
|
||||
<p>
|
||||
|
||||
<!-- =section gs SYNOPSIS -->
|
||||
<!-- =text ttf2pt1_x2gs B<[config-file]> -->
|
||||
<!-- =stop -->
|
||||
<blockquote>
|
||||
x2gs <i>[config-file]</i>
|
||||
</blockquote>
|
||||
|
||||
<!-- =section gs DESCRIPTION -->
|
||||
If the configuration file is not specified as an argument then the file
|
||||
`<TT>convert.cfg</TT>' in the current directory is used, just like the
|
||||
`<tt>convert</tt>' script does. Indeed, this configuration file is used for
|
||||
both scripts.
|
||||
<p>
|
||||
|
||||
The Ghostscript-related parameters in the configuration file are:
|
||||
<p>
|
||||
|
||||
<b><tt>DSTDIR</tt></b> - the X11 font directory used by `<tt>x2gs</tt>' as the
|
||||
source of the fonts. This parameter is common with the X11
|
||||
configuration.
|
||||
<p>
|
||||
|
||||
<b><tt>GSDIR</tt></b> - the base directory of Ghostsript. If this
|
||||
parameter is set to an empty string then `<tt>convert</tt>' won't
|
||||
call `<tt>x2gs</tt>'. So if you want to get only the X11 fonts
|
||||
installed then set this parameter to an empty string. This
|
||||
directory may vary on various system, so please check your
|
||||
system and set this value accordingly before running the script.
|
||||
<p>
|
||||
|
||||
<b><tt>GSFONTDIR</tt></b> - the font directory of Ghostscript. In the standard
|
||||
Ghostscript installation it's a subdirectory of <tt>GSDIR</tt>
|
||||
but some systems may use completely different directories.
|
||||
<p>
|
||||
|
||||
<b><tt>GSCONFDIR</tt></b> - the configuration subdirectory of Ghostscript
|
||||
that contains the <tt>Fontmap</tt> file.
|
||||
<p>
|
||||
|
||||
<b><tt>INSTALLFONTMAP</tt></b> - if the value is set to <b><tt>YES</tt></b> then
|
||||
install the entries for the new fonts right into the main
|
||||
<tt>Fontmap</tt> file. Otherwise just leave the file <tt>Fontmap.ttf</tt>
|
||||
in the Ghostscript configuration directory.
|
||||
<p>
|
||||
|
||||
|
||||
After preparing the configuration file run the script. It symbolicaly links
|
||||
all the font files and creates the description file <tt>Fontmap.ttf</tt> in
|
||||
<tt>GSCONDFIR</tt>. After that there are two choices.
|
||||
<p>
|
||||
|
||||
If the option <tt>INSTALLFONTMAP</tt> was set to <tt>YES</tt> then
|
||||
the font descriptions are also automatically installed into the
|
||||
master <tt>Fontmap</tt> file. The script is clever enough to
|
||||
detect if it was run multiple times with the same directories
|
||||
and if so it replaces the old <tt>Fontmap</tt> entries with
|
||||
the new ones instead of just accumulating all of them. You
|
||||
may also run it multiple times for multiple X11 directories
|
||||
and all the results will be properly collected in the <tt>Fontmap</tt>.
|
||||
But it's your responsibility to watch that the names of the
|
||||
font files don't overlap. If the X11 font directory gets
|
||||
renamed then you have to remove its font entries from the
|
||||
<tt>Fontmap</tt> and only after that re-run `<tt>x2gs</tt>'
|
||||
for the new directory.
|
||||
<p>
|
||||
|
||||
On the other hand if the option <tt>INSTALLFONTMAP</tt> was set to
|
||||
<tt>NO</tt> then go to the <tt>GSCONFDIR</tt> directory and insert the
|
||||
contents of <tt>Fontmap.ttf</tt> into the <tt>Fontmap</tt> file
|
||||
manually. This step may be left manual to make the installation
|
||||
a little bit more safe.
|
||||
<p>
|
||||
|
||||
After that you may also want to redefine some of the aliases in
|
||||
<tt>Fontmap</tt> to refer to the newly installed fonts.
|
||||
But the redefinition of the aliases may be dangerous if the width of
|
||||
characters in the new font will be different from the old font.
|
||||
Alas, there is no visible solution of this problem yet.
|
||||
<p>
|
||||
<!-- =stop -->
|
||||
<!-- =section gs FILES -->
|
||||
<!-- ==over 2 -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/scripts/convert.cfg.sample -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/scripts/* -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/README -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/FONTS -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_SHAREDIR/* -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text TTF2PT1_BINDIR/ttf2pt1 -->
|
||||
<!-- ==back -->
|
||||
<!-- =stop -->
|
||||
<!-- =section gs SEE ALSO -->
|
||||
<!-- ==over 4 -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text L<ttf2pt1(1)> -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text L<ttf2pt1_convert(1)> -->
|
||||
<!-- ==item * -->
|
||||
<!-- =text L<t1asm(1)> -->
|
||||
<!-- ==back -->
|
||||
<!-- =stop -->
|
||||
|
||||
<A NAME="win"></A>
|
||||
<H3>
|
||||
MS Windows
|
||||
</H3>
|
||||
<!
|
||||
===========
|
||||
>
|
||||
|
||||
<b>Ttf2pt1</b> can be built on Windows either with native compiler or in
|
||||
POSIX emulation mode.
|
||||
<p>
|
||||
|
||||
Native MS Windows compilers require a different way to build the converter
|
||||
instead of the Makefile (their <tt>make</tt> programs commonly are quite weird
|
||||
and limited in capabilities). An example of batch file <tt>winbuild.bat</tt>
|
||||
is provided for MS Visual C/C++. Probably it can be easily adapted for other
|
||||
32-bit Windows and DOS compilers. The important part is to define the
|
||||
preprocessor symbol WINDOWS during compilation.
|
||||
<p>
|
||||
|
||||
Cygnus <tt>make</tt> almost supports full Makefiles but not quite. Seems
|
||||
like its POSIX support is also of the same quality "almost but not quite".
|
||||
So another command file <tt>cygbuild.sh</tt> is provided for Cygnus GNU C, also
|
||||
with the preprocessor symbol WINDOWS defined. It is intended to be run from
|
||||
the Cygnus BASH shell. To run the programs produced by the Cygnus compiler
|
||||
the Cygnus library file <tt>CYGWIN1.DLL</tt> should be copied first into
|
||||
<tt>C:\WINDOWS</tt>.
|
||||
<p>
|
||||
|
||||
To run the accompanying scripts Perl for Windows will be required as well as
|
||||
other tools from the Cygnus set.
|
||||
<p>
|
||||
|
||||
The Windows support was not particularly tested, so in case of problems with
|
||||
building or running the converter please let us know.
|
||||
<p>
|
||||
|
||||
The pre-built code (possibly of an older version) of ttf2pt1 for MS Windows is
|
||||
available from the GnuWin32 project from
|
||||
|
||||
<A HREF="http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm">http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm</A>
|
||||
<p>
|
||||
|
||||
<A NAME="netscape"></a>
|
||||
<H3>
|
||||
Netscape Navigator/Communicator
|
||||
</H3>
|
||||
<!
|
||||
===============================
|
||||
>
|
||||
|
||||
Basically, the biggest problem with Netscape Navigator is that
|
||||
it has built-in fixed PostScript font names and built-in fixed
|
||||
glyph tables for them. Oh, no, that's two! Let's start over:
|
||||
basically the two biggest problems of Netscape Navigator are
|
||||
that (one)it has built-in fixed PostScript font names and (two)
|
||||
built-in fixed glyph tables for them and (three) it always
|
||||
assumes that the fonts have ISOLatin1 encoding. OK, let's
|
||||
start over again: basically the three biggest problems of Netscape
|
||||
Navigator are that (one) it has built-in fixed PostScript font names,
|
||||
(two) built-in fixed glyph tables for them and (three) it always
|
||||
assumes that the fonts have ISOLatin1 encoding and (four) it
|
||||
does not remember the scaled font size between the sessions.
|
||||
You did not expect such a Spanish Inquisition, did you ? (<A HREF="#nsfn1">*</a>)
|
||||
<p>
|
||||
|
||||
Luckily, we have solutions for all of these problems. They are
|
||||
located in the subdirectory `<tt>app/netscape</tt>' and described
|
||||
in <A HREF="app/netscape/README.html">app/netscape/README</a>.
|
||||
<p>
|
||||
|
||||
<A NAME="nsfn1"></a>
|
||||
-------<br>
|
||||
<FONT SIZE=-1>*) See Monty Python's Flying Circus, episode 15</FONT></FONT>
|
||||
<p>
|
||||
|
||||
<FONT COLOR="#3333FF"><FONT SIZE=-1>*8*</FONT></FONT>
|
||||
<H4>
|
||||
Netscape and cyrillic fonts<br>
|
||||
<!
|
||||
---------------------------
|
||||
>
|
||||
(courtesy of Zvezdan Petkovic)
|
||||
</H4>
|
||||
|
||||
If you use TrueType fonts in your X, as I do, and you always get
|
||||
KOI8-R encoded pages, then your Netscape does not recognise windows-1251
|
||||
encoding. Microsoft TrueType fonts simply declare all encodings they
|
||||
can support including KOI8-R. For some reason, KOI8-R always wins over
|
||||
ISO-8859-5 in Netscape under X. If you are reading other cyrillic
|
||||
languages besides Russian, you might want to either erase KOI8-R entries
|
||||
from the fonts.dir and fonts.scale files, or alternatively fix Netscape.
|
||||
I put this line in my .Xdefaults.
|
||||
<p>
|
||||
|
||||
<blockquote><tt>
|
||||
Netscape*documentFonts.charset*koi8-r: iso-8859-5
|
||||
</tt></blockquote>
|
||||
<p>
|
||||
|
||||
Notice that you can still read Russian sites without trouble because
|
||||
Netscape translates KOI8-R to ISO-8859-5 on the fly. I read both Russian
|
||||
and Serbian sites with no trouble.
|
||||
<p>
|
||||
|
||||
<b>Note:</b> <i>If anybody knows the way to tell Netscape under Unix how to
|
||||
recognise {windows,ibm,cp}-1251 encoded fonts, I'd like to hear about that.</i>
|
||||
<p>
|
||||
|
||||
<A NAME="rpm"></a>
|
||||
<H3>
|
||||
Linux RPM package
|
||||
</H3>
|
||||
<!
|
||||
=================
|
||||
>
|
||||
|
||||
The spec file for the creation of a Linux RPM package is located in
|
||||
<tt>app/RPM</tt>. It has been contributed by Johan Vromans. When
|
||||
<tt>make all</tt> is ran in the main directory it among the other
|
||||
things creates the version of itself adapted to Linux in <tt>app/RPM</tt>,
|
||||
you may want to copy that version back to the main directory.
|
||||
<p>
|
||||
|
||||
<B>Warning:</B> Please note that the install section is incomplete, and
|
||||
the installed scripts won't work until the paths inside them
|
||||
are corrected.
|
||||
<p>
|
||||
|
||||
<A NAME="framemaker"></a>
|
||||
<H3>
|
||||
FrameMaker
|
||||
</H3>
|
||||
<!
|
||||
==========
|
||||
>
|
||||
|
||||
The fonts and AFM files generated by the version 3.2 and higher
|
||||
should work with Framemaker without problems. The AFM files
|
||||
generated by the previous versions of the converter require a
|
||||
line added to them:
|
||||
<p>
|
||||
|
||||
<tt>EncodingScheme FontSpecific</tt>
|
||||
<p>
|
||||
|
||||
And the underscores in the font names of the font and AFM files
|
||||
generated by the older versions may need to be changed to dashes.
|
||||
<p>
|
||||
|
||||
<B>NOTE by Jason Baietto:</B> Ignore the directions in the Frame on-line docs
|
||||
that say to put a "serverdict begin 0 exitserver" line in the pfa files.
|
||||
Doing this caused both my printer and ghostscript to choke on the resulting
|
||||
output from FrameMaker, so I would not advise doing this (though your
|
||||
mileage may vary).
|
||||
<p>
|
||||
|
||||
<A NAME="soffice"></a>
|
||||
<H3>
|
||||
StarOffice
|
||||
</H3>
|
||||
<!
|
||||
==========
|
||||
>
|
||||
|
||||
StarOffice 5.1x has been reported to crash if the <tt>.afm</tt> file contains
|
||||
spaces in the values of such statements as <b>Version</b>, <b>Weight</b> etc.
|
||||
These spaces are permitted by the Adobe spec, so this is a problem of
|
||||
StarOffice. The easiest way to fix these <tt>.afm</tt> files for StarOffice
|
||||
is to remove spaces in these strings or remove these strings (in case if
|
||||
they are optional) at all. This can be done automatically with a <tt>sed</tt>
|
||||
script. It seems that StarOffice 5.2 has this problem fixed, so we decided to
|
||||
spend no efforts on providing workarounds for 5.1 with <tt>ttf2pt1</tt>.
|
||||
<p>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
279
pdf/lib/ttf2ufm/src/Makefile
Executable file
279
pdf/lib/ttf2ufm/src/Makefile
Executable file
@@ -0,0 +1,279 @@
|
||||
|
||||
# This file should be configured before running `make'.
|
||||
# Uncomment or change the values that are relevant for your OS.
|
||||
|
||||
# The preferred C compiler (by default use the OS-specific default value).
|
||||
# For BSD/OS, FreeBSD, Linux (all flavors), NetBSD, OpenBSD the default
|
||||
# compiler is GNU C.
|
||||
# (Note please the politically correct ordering by alphabet ! :-)
|
||||
#
|
||||
# Use GNU C even if it's not the default compiler
|
||||
#
|
||||
#CC=gcc
|
||||
#
|
||||
# Use the standard ANSI C compiler on HP-UX even if it's not default
|
||||
#
|
||||
#CC=c89
|
||||
|
||||
#
|
||||
# The system-dependent flags for the C compiler
|
||||
#
|
||||
# Default
|
||||
|
||||
CFLAGS_SYS= -g
|
||||
|
||||
# For GNU C
|
||||
#
|
||||
#CFLAGS_SYS= -O2
|
||||
#
|
||||
# For GNU C with long options support library (Linux etc.)
|
||||
#
|
||||
#CFLAGS_SYS= -O2 -D_GNU_SOURCE
|
||||
#
|
||||
# For GNU C on HP-UX/PA-RISC 1.1
|
||||
#
|
||||
#CFLAGS_SYS= -O2 -Wa,-w
|
||||
#
|
||||
# For the standard ANSI C on HP-UX
|
||||
#
|
||||
#CFLAGS_SYS= +O2 -D_HPUX_SOURCE
|
||||
|
||||
#
|
||||
# The system-dependent libraries
|
||||
#
|
||||
# Defalut (for the BSD-style OSes)
|
||||
|
||||
LIBS_SYS= -lm
|
||||
|
||||
# For SystemV (such as SCO, UnixWare, Solaris, but _NOT_ Linux or HP-UX)
|
||||
#
|
||||
#LIBS_SYS= -lm -lsocket
|
||||
|
||||
#
|
||||
# The flags for C compiler for the FreeType-2 library (disabled by default).
|
||||
# This WON'T BUILD with FT2-beta8, use the FreeType release 2.0.4
|
||||
# http://download.sourceforge.net/freetype/freetype-2.0.4.tar.gz
|
||||
|
||||
#CFLAGS_FT=
|
||||
|
||||
# To enable use of the FreeType-2 library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment LIBS_FT
|
||||
#
|
||||
CFLAGS_FT = -DUSE_FREETYPE -I/usr/include/freetype2 -I/usr/include
|
||||
|
||||
#
|
||||
# The FreeType-2 library flags (disabled by default)
|
||||
|
||||
#LIBS_FT=
|
||||
|
||||
# To enable use of the FreeType-2 library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment CFLAGS_FT
|
||||
#
|
||||
LIBS_FT= -L/usr/lib -lfreetype
|
||||
|
||||
#
|
||||
# The flags for C compiler for the Autotrace library (disabled by default).
|
||||
# USE OF THIS FEATURE IS STRONGLY DISCOURAGED, THE BUILT-IN TRACING
|
||||
# (AKA VECTORIZATION) PROVIDES MUCH BETTER RESULTS.
|
||||
# The tested version is 0.29a (and the fonts produced with it are
|
||||
# absolutely not usable).
|
||||
# http://download.sourceforge.net/autotrace/autotrace-0.29.tar.gz
|
||||
|
||||
CFLAGS_AT=
|
||||
|
||||
# To enable use of the Autotrace library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment LIBS_AT
|
||||
#
|
||||
#CFLAGS_AT = -DUSE_AUTOTRACE -I/usr/local/include
|
||||
|
||||
#
|
||||
# The Autotrace library flags (disabled by default)
|
||||
|
||||
LIBS_AT=
|
||||
|
||||
# To enable use of the Autotrace library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment CFLAGS_AT
|
||||
#
|
||||
#LIBS_AT= -L/usr/local/lib -lautotrace
|
||||
|
||||
#
|
||||
# Preference of front-ends if multiple parsers match a file
|
||||
# (by default the build-in front-end takes preference over FreeType)
|
||||
|
||||
CFLAGS_PREF=
|
||||
|
||||
# To prefer FreeType (if enabled):
|
||||
#
|
||||
#CFLAGS_PREF= -DPREFER_FREETYPE
|
||||
|
||||
# Uncomment the second line to not compile t1asm into ttf2pt1
|
||||
CFLAGS_EXTT1ASM=
|
||||
#CFLAGS_EXTT1ASM= -DEXTERNAL_T1ASM
|
||||
|
||||
CFLAGS= $(CFLAGS_SYS) $(CFLAGS_FT) $(CFLAGS_AT) $(CFLAGS_PREF)
|
||||
LIBS= $(LIBS_SYS) $(LIBS_FT) $(LIBS_AT)
|
||||
|
||||
# Installation-related stuff
|
||||
#
|
||||
# The base dir for installation and subdirs in it
|
||||
INSTDIR = /usr/local
|
||||
# for binaries
|
||||
BINDIR = $(INSTDIR)/bin
|
||||
# for binaries of little general interest
|
||||
LIBXDIR = $(INSTDIR)/libexec/ttf2pt1
|
||||
# for scripts, maps/encodings etc.
|
||||
SHAREDIR = $(INSTDIR)/share/ttf2pt1
|
||||
MANDIR = $(INSTDIR)/man
|
||||
|
||||
# owner and group of installed files
|
||||
OWNER = root
|
||||
GROUP = bin
|
||||
|
||||
# After you have configured the Makefile, comment out the following
|
||||
# definition:
|
||||
warning: docs
|
||||
@echo >&2
|
||||
@echo " You have to configure the Makefile before running make!" >&2
|
||||
@echo "(or if you are lazy and hope that it will work as is run \`make all')">&2
|
||||
@echo >&2
|
||||
|
||||
DOCS=CHANGES README FONTS FONTS.hpux encodings/README other/README \
|
||||
app/X11/README app/netscape/README app/TeX/README
|
||||
|
||||
SUBDIRS = app encodings maps scripts other
|
||||
TXTFILES = README* FONTS* CHANGES* COPYRIGHT
|
||||
|
||||
MANS1=ttf2pt1.1 ttf2pt1_convert.1 ttf2pt1_x2gs.1
|
||||
MANS=$(MANS1) $(MANS5)
|
||||
|
||||
all: t1asm ttf2pt1 docs mans rpm
|
||||
|
||||
docs: $(DOCS)
|
||||
|
||||
mans: $(MANS)
|
||||
|
||||
clean:
|
||||
rm -f t1asm ttf2pt1 *.o app/RPM/Makefile app/RPM/*.spec *.core core.* core
|
||||
( cd other && make clean; )
|
||||
( cd app/netscape && make clean; )
|
||||
|
||||
veryclean: clean
|
||||
rm -f $(DOCS) $(MANS)
|
||||
|
||||
rpm: app/RPM/Makefile app/RPM/ttf2pt1.spec
|
||||
|
||||
ttf2pt1.1: README.html
|
||||
scripts/html2man . . <README.html
|
||||
|
||||
ttf2pt1_convert.1 ttf2pt1_x2gs.1: FONTS.html
|
||||
scripts/html2man . . <FONTS.html
|
||||
|
||||
app/RPM/Makefile: Makefile
|
||||
sed 's/^CFLAGS_SYS.*=.*$$/CFLAGS_SYS= -O2 -D_GNU_SOURCE/;/warning:/,/^$$/s/^/#/' <Makefile >app/RPM/Makefile
|
||||
|
||||
app/RPM/ttf2pt1.spec: app/RPM/ttf2pt1.spec.src version.h
|
||||
sed 's/^Version:.*/Version: '`grep TTF2PT1_VERSION version.h| cut -d\" -f2`'/' <app/RPM/ttf2pt1.spec.src >$@
|
||||
|
||||
t1asm: t1asm.c
|
||||
$(CC) $(CFLAGS) -o t1asm -DSTANDALONE t1asm.c $(LIBS)
|
||||
|
||||
ttf2pt1.o: ttf2pt1.c ttf.h pt1.h global.h version.h
|
||||
$(CC) $(CFLAGS) -c ttf2pt1.c
|
||||
|
||||
pt1.o: pt1.c ttf.h pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c pt1.c
|
||||
|
||||
ttf.o: ttf.c ttf.h pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c ttf.c
|
||||
|
||||
ft.o: ft.c pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c ft.c
|
||||
|
||||
bdf.o: bdf.c pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c bdf.c
|
||||
|
||||
bitmap.o: bitmap.c pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c bitmap.c
|
||||
|
||||
runt1asm.o: runt1asm.c global.h
|
||||
$(CC) $(CFLAGS) $(CFLAGS_EXTT1ASM) -c runt1asm.c
|
||||
|
||||
ttf2pt1: ttf2pt1.o pt1.o runt1asm.o ttf.o ft.o bdf.o bitmap.o
|
||||
$(CC) $(CFLAGS) -o ttf2pt1 ttf2pt1.o pt1.o runt1asm.o ttf.o ft.o bdf.o bitmap.o $(LIBS)
|
||||
|
||||
CHANGES: CHANGES.html
|
||||
scripts/unhtml <CHANGES.html >CHANGES
|
||||
|
||||
README: README.html
|
||||
scripts/unhtml <README.html >README
|
||||
|
||||
encodings/README: encodings/README.html
|
||||
scripts/unhtml <encodings/README.html >encodings/README
|
||||
|
||||
other/README: other/README.html
|
||||
scripts/unhtml <other/README.html >other/README
|
||||
|
||||
app/X11/README: app/X11/README.html
|
||||
scripts/unhtml <app/X11/README.html >app/X11/README
|
||||
|
||||
app/netscape/README: app/netscape/README.html
|
||||
scripts/unhtml <app/netscape/README.html >app/netscape/README
|
||||
|
||||
app/TeX/README: app/TeX/README.html
|
||||
scripts/unhtml <app/TeX/README.html >app/TeX/README
|
||||
|
||||
FONTS: FONTS.html
|
||||
scripts/unhtml <FONTS.html >FONTS
|
||||
|
||||
FONTS.hpux: FONTS.hpux.html
|
||||
scripts/unhtml <FONTS.hpux.html >FONTS.hpux
|
||||
|
||||
install: all
|
||||
scripts/inst_dir $(BINDIR) $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(LIBXDIR) $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(SHAREDIR) $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(MANDIR)/man1 $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(MANDIR)/man5 $(OWNER) $(GROUP) 0755
|
||||
cp -R $(TXTFILES) $(SUBDIRS) $(SHAREDIR)
|
||||
chown -R $(OWNER) $(SHAREDIR)
|
||||
chgrp -R $(GROUP) $(SHAREDIR)
|
||||
chmod -R go-w $(SHAREDIR)
|
||||
scripts/inst_file ttf2pt1 $(BINDIR)/ttf2pt1 $(OWNER) $(GROUP) 0755
|
||||
[ -f $(BINDIR)/t1asm ] || scripts/inst_file t1asm $(LIBXDIR)/t1asm $(OWNER) $(GROUP) 0755
|
||||
sed -e 's|^TTF2PT1_BINDIR=$$|TTF2PT1_BINDIR=$(BINDIR)|;' \
|
||||
-e 's|^TTF2PT1_LIBXDIR=$$|TTF2PT1_LIBXDIR=$(LIBXDIR)|;' \
|
||||
-e 's|^TTF2PT1_SHAREDIR=$$|TTF2PT1_SHAREDIR=$(SHAREDIR)|;' <scripts/convert >cvt.tmp
|
||||
scripts/inst_file cvt.tmp $(BINDIR)/ttf2pt1_convert $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_file cvt.tmp $(SHAREDIR)/scripts/convert $(OWNER) $(GROUP) 0755
|
||||
rm cvt.tmp
|
||||
scripts/inst_file scripts/x2gs $(BINDIR)/ttf2pt1_x2gs $(OWNER) $(GROUP) 0755
|
||||
for i in $(MANS1); do { \
|
||||
sed -e 's|TTF2PT1_BINDIR|$(BINDIR)|;' \
|
||||
-e 's|TTF2PT1_LIBXDIR|$(LIBXDIR)|;' \
|
||||
-e 's|TTF2PT1_SHAREDIR|$(SHAREDIR)|;' <$$i >$(MANDIR)/man1/$$i \
|
||||
&& chown $(OWNER) $(MANDIR)/man1/$$i \
|
||||
&& chgrp $(GROUP) $(MANDIR)/man1/$$i \
|
||||
&& chmod 0644 $(MANDIR)/man1/$$i \
|
||||
|| exit 1; \
|
||||
} done
|
||||
|
||||
uninstall:
|
||||
rm -f $(BINDIR)/ttf2pt1 $(BINDIR)/ttf2pt1_convert $(BINDIR)/ttf2pt1_x2gs
|
||||
rm -rf $(LIBXDIR)
|
||||
rm -rf $(SHAREDIR)
|
||||
for i in $(MANS1); do { \
|
||||
rm -f $(MANDIR)/man1/$$i $(MANDIR)/man1/$$i.gz; \
|
||||
} done
|
||||
|
||||
|
||||
# targets for automatic generation of releases and snapshots
|
||||
|
||||
snapshot:
|
||||
scripts/mkrel snapshot
|
||||
|
||||
release:
|
||||
scripts/mkrel release
|
||||
814
pdf/lib/ttf2ufm/src/README
Executable file
814
pdf/lib/ttf2ufm/src/README
Executable file
@@ -0,0 +1,814 @@
|
||||
TTF2PT1 - A True Type to PostScript Type 1 Font Converter
|
||||
|
||||
(Do not edit this file, it is generated from README.html!!!)
|
||||
[
|
||||
Based on ttf2pfa by Andrew Weeks, and help from Frank Siegert.
|
||||
Modification by Mark Heath.
|
||||
Further modification by Sergey Babkin.
|
||||
The Type1 assembler by I. Lee Hetherington with modifications by
|
||||
Kai-Uwe Herbing.
|
||||
]
|
||||
|
||||
Ever wanted to install a particular font on your XServer but only could find
|
||||
the font you are after in True Type Format?
|
||||
|
||||
Ever asked comp.fonts for a True Type to Type 1 converter and got a List
|
||||
of Commercial software that doesn't run on your Operating System?
|
||||
|
||||
Well, this program should be the answer. This program is written in C (so it
|
||||
should be portable) and therefore should run on any OS. The only limitation
|
||||
is that the program requires some method of converting Big endian integers into
|
||||
local host integers so the network functions ntohs and ntohl are used. These
|
||||
can be replaced by macros if your platform doesn't have them.
|
||||
Of course the target platform requires a C compiler and command line ability.
|
||||
|
||||
Ttf2pt1 is a font converter from the True Type format (and some other formats
|
||||
supported by the FreeType library as well) to the Adobe Type1 format.
|
||||
|
||||
The versions 3.0 and later got rather extensive post-processing algorithm that
|
||||
brings the converted fonts to the requirements of the Type1 standard, tries to
|
||||
correct the rounding errors introduced during conversions and some simple
|
||||
kinds of bugs that are typical for the public domain TTF fonts. It
|
||||
also generates the hints that enable much better rendering of fonts in
|
||||
small sizes that are typical for the computer displays. But everything
|
||||
has its price, and some of the optimizations may not work well for certain
|
||||
fonts. That's why the options were added to the converter, to control
|
||||
the performed optimizations.
|
||||
|
||||
The converter is simple to run, just:
|
||||
|
||||
ttf2pt1 [-options] ttffont.ttf [Fontname]
|
||||
or
|
||||
ttf2pt1 [-options] ttffont.ttf -
|
||||
|
||||
The first variant creates the file Fontname.pfa (or Fontname.pfb if the
|
||||
option '-b' was used) with the converted font and Fontname.afm with the
|
||||
font metrics, the second one prints the font or another file (if the option
|
||||
'-G' was used) on the standard output from where it can be immediately
|
||||
piped through some filter. If no Fontname is specified for the first
|
||||
variant, the name is generated from ttffont by replacing the .ttf
|
||||
filename suffix.
|
||||
|
||||
Most of the time no options are neccessary (with a possible exception
|
||||
of '-e'). But if there are some troubles with the resulting font, they
|
||||
may be used to control the conversion.
|
||||
The options are:
|
||||
|
||||
-a - Include all the glyphs from the source file into the converted
|
||||
file. If this option is not specified then only the glyphs that have
|
||||
been assigned some encoding are included, because the rest of glyphs
|
||||
would be inaccessible anyway and would only consume the disk space.
|
||||
But some applications are clever enough to change the encoding on
|
||||
the fly and thus use the other glyphs, in this case they could
|
||||
benefit from using this option. But there is a catch: the X11 library
|
||||
has rather low limit for the font size. Including more glyphs increases
|
||||
the file size and thus increases the chance of hitting this limit.
|
||||
See app/X11/README for the description of a
|
||||
patch to X11 which fixes this problem.
|
||||
|
||||
-b - Encode the resulting font to produce a ready .pfb file.
|
||||
|
||||
-d suboptions - Debugging options. The suboptions are:
|
||||
|
||||
a - Print out the absolute coordinates of dots in outlines. Such
|
||||
a font can not be used by any program (that's why this option is
|
||||
incompatible with '-e') but it has proven to be a valuable debuging
|
||||
information.
|
||||
|
||||
r - Do not reverse the direction of outlines. The TTF fonts have
|
||||
the standard direction of outlines opposite to the Type1 fonts. So
|
||||
they should be reversed during proper conversion. This option
|
||||
may be used for debugging or to handle a TTF font with wrong
|
||||
direction of outlines (possibly, converted in a broken way from
|
||||
a Type1 font). The first signs of the wrong direction are the
|
||||
letters like "P" or "B" without the unpainted "holes" inside.
|
||||
|
||||
-e - Assemble the resulting font to produce a ready .pfa file.
|
||||
[ S.B.: Personally I don't think that this option is particularly useful.
|
||||
The same result may be achieved by piping the unassembled data
|
||||
through t1asm, the Type 1 assembler. And, anyways, it's good to
|
||||
have the t1utils package handy. But Mark and many users think that
|
||||
this functionality is good and it took not much time to add this option. ]
|
||||
|
||||
-F - Force the Unicode encoding: any type of MS encoding specified
|
||||
in the font is ignored and the font is treated like it has Unicode
|
||||
encoding. WARNING: this option is intended for buggy fonts
|
||||
which actually are in Unicode but are marked as something else. The
|
||||
effect on the other fonts is unpredictable.
|
||||
|
||||
-G suboptions - File generation options. The suboptions may be lowercase
|
||||
or uppercase, the lowercase ones disable the generation of particular
|
||||
files, the corresponding uppercase suboptions enable the generation of the
|
||||
same kind of files. If the result of ttf2pt1 is requested to be printed on
|
||||
the standard output, the last enabling suboption of -G determines
|
||||
which file will be written to the standard output and the rest of files
|
||||
will be discarded. For example, -G A will request the AFM file.
|
||||
The suboptions to disable/enable the generation of the files are:
|
||||
|
||||
f/F - The font file. Depending on the other options this file
|
||||
will have one of the suffixes .t1a, .pfa or .pfb. If the conversion result
|
||||
is requested on the standard output ('-' is used as the output file name)
|
||||
then the font file will also be written there by default, if not overwritten
|
||||
by another suboption of -G.
|
||||
Default: enabled
|
||||
|
||||
a/A - The Adobe font metrics file (.afm).
|
||||
Default: enabled
|
||||
|
||||
e/E - The dvips encoding file (.enc).
|
||||
Default: disabled
|
||||
|
||||
|
||||
-l language[+argument] - Extract the fonts for the specified language from a
|
||||
multi-language Unicode font. If this option is not used the converter
|
||||
tries to guess the language by the values of the shell variable LANG.
|
||||
If it is not able to guess the language by LANG it tries all the
|
||||
languages in the order they are listed.
|
||||
|
||||
After the plus sign an optional argument for the language extractor
|
||||
may be specified. The format of the argument is absolutely up to
|
||||
the particular language converter. The primary purpose of the
|
||||
argument is to support selection of planes for the multi-plane
|
||||
Eastern encodings but it can also be used in any other way. The
|
||||
language extractor may decide to add the plane name in some form
|
||||
to the name of the resulting font. None of the currently supported
|
||||
languages make any use of the argument yet.
|
||||
|
||||
As of now the following languages are supported:
|
||||
latin1 - for all the languages using the Latin-1 encoding
|
||||
latin2 - for the Central European languages
|
||||
latin4 - for the Baltic languages
|
||||
latin5 - for the Turkish language
|
||||
cyrillic - for the languages with Cyrillic alphabet
|
||||
russian - historic synonym for cyrillic
|
||||
bulgarian - historic synonym for cyrillic
|
||||
adobestd - for the AdobeStandard encoding used by TeX
|
||||
plane+argument - to select one plane from a multi-byte encoding
|
||||
|
||||
The argument of the "plane" language may be in one of three forms:
|
||||
plane+pid=<pid>,eid=<eid>
|
||||
plane+pid=<pid>,eid=<eid>,<plane_number>
|
||||
plane+<plane_number>
|
||||
|
||||
Pid (TTF platform id) and eid (TTF encoding id) select a particular
|
||||
TTF encoding table in the original font. They are specified as decimal
|
||||
numbers. If this particular encoding table is not present in the font
|
||||
file then the conversion fails. The native ("ttf") front-end parser supports
|
||||
only pid=3 (Windows platform), the FreeType-based ("ft") front-end supports
|
||||
any platform. If pid/eid is not specified then the TTF encoding table is
|
||||
determined as usual: Unicode encoding if it's first or an 8-bit encoding
|
||||
if not (and for an 8-bit encoding the plane number is silently ignored).
|
||||
To prevent the converter from falling back to an 8-bit encoding, specify
|
||||
the Unicode pid/eid value explicitly.
|
||||
|
||||
Plane_number is a hexadecimal (if starts with "0x") or decimal number.
|
||||
It gives the values of upper bytes for which 256 characters will be
|
||||
selected. If not specified, defaults to 0. It is also used as a font
|
||||
name suffix (the leading "0x" is not included into the suffix).
|
||||
|
||||
NOTE:
|
||||
It seems that many Eastern fonts use features of the TTF format that are
|
||||
not supported by the ttf2pt1's built-in front-end parser. Because of
|
||||
this for now we recommend using the FreeType-based parser (option
|
||||
'-p ft') with the "plane" language.
|
||||
|
||||
NOTE:
|
||||
You may notice that the language names are not uniform: some are the
|
||||
names of particular languages and some are names of encodings. This
|
||||
is because of the different approaches. The original idea was to
|
||||
implement a conversion from Unicode to the appropriate Windows
|
||||
encoding for a given language. And then use the translation tables
|
||||
to generate the fonts in whatever final encodings are needed. This
|
||||
would allow to pile together the Unicode fonts and the non-Unicode
|
||||
Windows fonts for that language and let the program to sort them out
|
||||
automatically. And then generate fonts in all the possible encodings
|
||||
for that language. An example of this approach is the Russian language
|
||||
support. But if there is no multiplicity of encodings used for some
|
||||
languages and if the non-Unicode fonts are not considered important
|
||||
by the users, another way would be simpler to implement: just provide
|
||||
only one table for extraction of the target encoding from Unicode
|
||||
and don't bother with the translation tables. The latin* "languages"
|
||||
are examples of this approach. If somebody feels that he needs the
|
||||
Type1 fonts both in Latin-* and Windows encodings he or she is absolutely
|
||||
welcome to submit the code to implement it.
|
||||
|
||||
WARNING:
|
||||
Some of the glyphs included into the AdobeStandard encoding are not
|
||||
included into the Unicode standard. The most typical examples of such
|
||||
glyphs are ligatures like 'fi', 'fl' etc. Because of this the font
|
||||
designers may place them at various places. The converter tries to
|
||||
do its best, if the glyphs have honest Adobe names and/or are
|
||||
placed at the same codes as in the Microsoft fonts they will be
|
||||
picked up. Otherwise a possible solution is to use the option '-L'
|
||||
with an external map.
|
||||
|
||||
-L file[+[pid=<pid>,eid=<eid>,][plane]] - Extract the fonts for the specified
|
||||
language from a multi-language font using the map from this file. This is
|
||||
rather like the option '-l' but the encoding map is not
|
||||
compiled into the program, it's taken from that file, so it's
|
||||
easy to edit. Examples of such files are provided in
|
||||
maps/adobe-standard-encoding.map, CP1250.map. (NOTE:
|
||||
the 'standard encoding' map does not include all the glyphs of the
|
||||
AdobeStandard encoding, it's provided only as an example.) The
|
||||
description of the supported map formats is in the file
|
||||
maps/unicode-sample.map.
|
||||
|
||||
Likewise to '-l', an argument may be specified after the map file
|
||||
name. But in this case the argument has fixed meaning: it selects the
|
||||
original TTF encoding table (the syntax is the same as in '-l plane')
|
||||
and/or a plane of the map file. The plane name also gets added after dash
|
||||
to the font name. The plane is a concept used in the Eastern fonts with big
|
||||
number of glyphs: one TTF font gets divided into multiple Type1 fonts,
|
||||
each containing one plane of up to 256 glyphs. But with a little
|
||||
creativity this concept may be used for other purposes of combining
|
||||
multiple translation maps into one file. To extract multiple planes
|
||||
from a TTF font ttf2pt1 must be run multiple times, each time with
|
||||
a different plane name specified.
|
||||
|
||||
The default original TTF encoding table used for the option '-L' is
|
||||
Unicode. The map files may include directives to specify different original
|
||||
TTF encodings. However if the pid/eid pair is specified with
|
||||
it overrides any original encoding specified in the map file.
|
||||
|
||||
-m type=value - Set maximal or minimal limits of resources.
|
||||
These limits control the the font generation by limiting the resources
|
||||
that the font is permitted to require from the PostScript interpreter.
|
||||
The currently supported types of limits are:
|
||||
|
||||
h - the maximal hint stack depth for the substituted hints.
|
||||
The default value is 128, according to the limitation in X11. This seems to
|
||||
be the lowest (and thus the safest) widespread value. To display the
|
||||
hint stack depth required by each glyph in a .t1a file use the script
|
||||
scripts/cntstems.pl.
|
||||
|
||||
-O suboptions - Outline processing options. The suboptions
|
||||
may be lowercase or uppercase, the lowercase ones disable the features,
|
||||
the corresponding uppercase suboptions enable the same features.
|
||||
The suboptions to disable/enable features are:
|
||||
|
||||
b/B - Guessing of the ForceBold parameter. This parameter helps
|
||||
the Type1 engine to rasterize the bold fonts properly at small sizes.
|
||||
But the algorithm used to guess the proper value of this flag makes
|
||||
that guess based solely on the font name. In rare cases that may cause
|
||||
errors, in these cases you may want to disable this guessing.
|
||||
Default: enabled
|
||||
|
||||
h/H - Autogeneration of hints. The really complex outlines
|
||||
may confuse the algorithm, so theoretically it may be useful
|
||||
sometimes to disable them. Although up to now it seems that
|
||||
even bad hints are better than no hints at all.
|
||||
Default: enabled
|
||||
|
||||
u/U - Hint substitution. Hint substitution is a technique
|
||||
permitting generation of more detailed hints for the rasterizer. It allows
|
||||
to use different sets of hints for different parts of a glyph and change
|
||||
these sets as neccessary during rasterization (that's why "substituted").
|
||||
So it should improve the quality of the fonts rendered at small sizes.
|
||||
But there are two catches: First, the X11 library has rather low limit for
|
||||
the font size. More detailed hints increase the file size and thus increase
|
||||
the chance of hitting this limit (that does not mean that you shall hit it
|
||||
but you may if your fonts are particularly big). This is especially
|
||||
probable for Unicode fonts converted with option '-a', so you may want to
|
||||
use '-a' together with '-Ou'. See app/X11/README for the description of
|
||||
a patch to X11 which fixes this problem. Second, some rasterizers (again,
|
||||
X11 is the typical example) have a limitation for total number of hints
|
||||
used when drawing a glyph (also known as the hint stack depth). If that
|
||||
stack overflows the glyph is ignored. Starting from version 3.22 ttf2pt1
|
||||
uses algorithms to minimizing this depth, with the trade-off of slightly
|
||||
bigger font files. The glyphs which still exceed the limit set by option
|
||||
'-mh' have all the substituted hints removed and only base hints left.
|
||||
The algorithms seem to have been refined far enough to make the fonts with
|
||||
substituted hints look better than the fonts without them or at least the
|
||||
same. Still if the original fonts are not well-designed the detailed
|
||||
hinting may emphasize the defects of the design, such as non-even thickness
|
||||
of lines. So provided that you are not afraid of the X11 bug the best idea
|
||||
would be to generate a font with this feature and without it, then compare
|
||||
the results using the program other/cmpf (see the description
|
||||
in other/README) and decide which one looks better.
|
||||
Default: enabled
|
||||
|
||||
o/O - Space optimization of the outlines' code. This kind of optimization
|
||||
never hurts, and the only reason to disable this feature is for comparison
|
||||
of the generated fonts with the fonts generated by the previous versions of
|
||||
converter. Well, it _almost_ never hurts. As it turned out there exist
|
||||
some brain-damaged printers which don't understand it. Actually this
|
||||
feature does not change the outlines at all. The Type 1 font manual
|
||||
provides a set of redundant operators that make font description shorter,
|
||||
such as '10 hlineto' instead of '0 10 rlineto' to describe a horizontal
|
||||
line. This feature enables use of these operators.
|
||||
Default: enabled
|
||||
|
||||
s/S - Smoothing of outlines. If the font is broken in some
|
||||
way (even the ones that are not easily noticeable), such smoothing
|
||||
may break it further. So disabling this feature is the first thing to be
|
||||
tried if some font looks odd. But with smoothing off the hint generation
|
||||
algorithms may not work properly too.
|
||||
Default: enabled
|
||||
|
||||
t/T - Auto-scaling to the 1000x1000 Type1 standard matrix. The
|
||||
TTF fonts are described in terms of an arbitrary matrix up to
|
||||
4000x4000. The converted fonts must be scaled to conform to
|
||||
the Type1 standard. But the scaling introduces additional rounding
|
||||
errors, so it may be curious sometimes to look at the font in its
|
||||
original scale.
|
||||
Default: enabled
|
||||
|
||||
v/V - Do vectorization on the bitmap fonts. Functionally
|
||||
"vectorization" is the same thing as "autotracing", a different word is
|
||||
used purely to differentiate it from the Autotrace library. It tries to
|
||||
produce nice smooth outlines from bitmaps. This feature is still a work
|
||||
in progress though the results are already mostly decent.
|
||||
Default: disabled
|
||||
|
||||
w/W - Glyphs' width corection. This option is designed to be
|
||||
used on broken fonts which specify too narrow widths for the
|
||||
letters. You can tell that a font can benefit from this option
|
||||
if you see that the characters are smashed together without
|
||||
any whitespace between them. This option causes the converter
|
||||
to set the character widths to the actual width of this character
|
||||
plus the width of a typical vertical stem. But on the other hand
|
||||
the well-designed fonts may have characters that look better if
|
||||
their widths are set slightly narrower. Such well-designed fonts
|
||||
will benefit from disabling this feature. You may want to convert
|
||||
a font with and without this feature, compare the results and
|
||||
select the better one. This feature may be used only on proportional
|
||||
fonts, it has no effect on the fixed-width fonts.
|
||||
Default: disabled
|
||||
|
||||
z/Z - Use the Autotrace library on the bitmap fonts. The results
|
||||
are horrible and the use of this option is not recommended. This option is
|
||||
present for experimental purposes. It may change or be removed in the
|
||||
future. The working tracing can be achieved with option -OV.
|
||||
Default: disabled
|
||||
|
||||
-p parser_name - Use the specified front-end parser to read the font file.
|
||||
If this option is not used, ttf2pt1 selects the parser automatically based
|
||||
on the suffix of the font file name, it uses the first parser in its
|
||||
list that supports this font type. Now two parsers are supported:
|
||||
|
||||
ttf - built-in parser for the ttf files (suffix .ttf)
|
||||
bdf - built-in parser for the BDF files (suffix .bdf)
|
||||
ft - parser based on the FreeType-2 library (suffixes .ttf,
|
||||
.otf, .pfa, .pfb)
|
||||
|
||||
The parser ft is NOT linked in by default. See Makefile
|
||||
for instructions how to enable it. We do no support this parser on
|
||||
Windows: probably it will work but nobody tried and nobody knows how
|
||||
to build it.
|
||||
|
||||
The conversion of the bitmap fonts (such as BDF) is simplistic yet,
|
||||
producing jagged outlines. When converting such fonts, it might be
|
||||
a good idea to turn off the hint substitution (using option -Ou)
|
||||
because the hints produced will be huge but not adding much to the
|
||||
quality of the fonts.
|
||||
|
||||
-u number - Mark the font with this value as its
|
||||
UniqueID. The UniqueID is used by the printers with the hard disks
|
||||
to cache the rasterized characters and thus significantly
|
||||
speed-up the printing. Some of those printers just can't
|
||||
store the fonts without UniqueID on their disk.The problem
|
||||
is that the ID is supposed to be unique, as it name says. And
|
||||
there is no easy way to create a guaranteed unique ID. Adobe specifies
|
||||
the range 4000000-4999999 for private IDs but still it's difficult
|
||||
to guarantee the uniqueness within it. So if you don't really need the
|
||||
UniqueID don't use it, it's optional. Luckily there are a few millions of
|
||||
possible IDs, so the chances of collision are rather low.
|
||||
If instead of the number a special value 'A' is given
|
||||
then the converter generates the value of UniqueID automatically,
|
||||
as a hash of the font name. (NOTE: in the version 3.22 the
|
||||
algorithm for autogeneration of UniqueID was changed to fit the values
|
||||
into the Adobe-spacified range. This means that if UniqueIDs were used
|
||||
then the printer's cache may need to be flushed before replacing the
|
||||
fonts converted by an old version with fonts converted by a newer version).
|
||||
A simple way to find if any of the fonts in a given directory have
|
||||
duplicated UniqueIDs is to use the command:
|
||||
|
||||
cat *.pf[ab] | grep UniqueID | sort | uniq -c | grep -v ' 1 '
|
||||
|
||||
Or if you use scripts/convert it will do that for you automatically
|
||||
plus it will also give the exact list of files with duplicate UIDs.
|
||||
|
||||
-v size - Re-scale the font to get the size of a typical uppercase
|
||||
letter somewhere around the specified size. Actually, it re-scales
|
||||
the whole font to get the size of one language-dependent letter to be
|
||||
at least of the specified size. Now this letter is "A" in all the
|
||||
supported languages. The size is specified in the points of the
|
||||
Type 1 coordinate grids, the maximal value is 1000. This is an
|
||||
experimental option and should be used with caution. It tries to
|
||||
increase the visible font size for a given point size and thus make
|
||||
the font more readable. But if overused it may cause the fonts to
|
||||
look out of scale. As of now the interesting values of size for
|
||||
this option seem to be located mostly between 600 and 850. This
|
||||
re-scaling may be quite useful but needs more experience to
|
||||
understand the balance of its effects.
|
||||
|
||||
-W level - Select the verbosity level of the warnings.
|
||||
Currently the levels from 0 to 4 are supported. Level 0 means no warnings
|
||||
at all, level 4 means all the possible warnings. The default level is 3.
|
||||
Other levels may be added in the future, so using the level number 99 is
|
||||
recommended to get all the possible warnings. Going below level 2 is
|
||||
not generally recommended because you may miss valuable information about
|
||||
the problems with the fonts being converted.
|
||||
|
||||
Obsolete option:
|
||||
-A - Print the font metrics (.afm file) instead of the font on STDOUT.
|
||||
Use -GA instead.
|
||||
|
||||
Very obsolete option:
|
||||
The algorithm that implemented the forced fixed width had major
|
||||
flaws, so it was disabled. The code is still in the program and
|
||||
some day it will be refined and returned back. Meanwhile the
|
||||
option name '-f' was reused for another option. The old version was:
|
||||
-f - Don't try to force the fixed width of font. Normally the converter
|
||||
considers the fonts in which the glyph width deviates by not more
|
||||
than 5% as buggy fixed width fonts and forces them to have really
|
||||
fixed width. If this is undesirable, it can be disabled by this option.
|
||||
|
||||
The .pfa font format supposes that the description of the characters
|
||||
is binary encoded and encrypted. This converter does not encode or
|
||||
encrypt the data by default, you have to specify the option '-e'
|
||||
or use the t1asm program to assemble (that means, encode and
|
||||
encrypt) the font program. The t1asm program that is included with
|
||||
the converter is actually a part of the t1utils package, rather old
|
||||
version of which may be obtained from
|
||||
|
||||
http://ttf2pt1.sourceforge.net/t1utils.tar.gz
|
||||
|
||||
Note that t1asm from the old version of that package won't work properly
|
||||
with the files generated by ttf2pt1 version 3.20 and later. Please use
|
||||
t1asm packaged with ttf2pt1 or from the new version t1utils
|
||||
instead. For a newer version of t1utils please look at
|
||||
|
||||
http://www.lcdf.org/~eddietwo/type/
|
||||
|
||||
So, the following command lines:
|
||||
|
||||
ttf2pt1 -e ttffont.ttf t1font
|
||||
ttf2pt1 ttffont.ttf - | t1asm >t1font.pfa
|
||||
|
||||
represent two ways to get a working font. The benefit of the second form
|
||||
is that other filters may be applied to the font between the converter
|
||||
and assembler.
|
||||
|
||||
Installation and deinstallation of the converter
|
||||
------------------------------------------------
|
||||
|
||||
The converter may be easily installed systemwide with
|
||||
|
||||
make install
|
||||
|
||||
and uninstalled with
|
||||
|
||||
make uninstall
|
||||
|
||||
By default the Makefile is configured to install in the hierarchy
|
||||
of directory /usr/local. This destination directory as well as
|
||||
the structure of the hierarchy may be changed by editing the Makefile.
|
||||
|
||||
Installation of the fonts
|
||||
-------------------------
|
||||
|
||||
Running the converter manually becomes somewhat boring if it has to
|
||||
be applied to a few hundreds of fonts and then you have to generate the
|
||||
fonts.scale and/or Fontmap files. The FONTS file describes how to use
|
||||
the supplied scripts to handle such cases easily. It also discusses
|
||||
the installation of the fonts for a few widespread programs.
|
||||
|
||||
Other utilities
|
||||
---------------
|
||||
|
||||
A few other small interesting programs that allow a cloase look at
|
||||
the fonts are located in the subdirectory 'other'. They
|
||||
are described shortly in others/README.
|
||||
|
||||
Optional packages
|
||||
-----------------
|
||||
|
||||
Some auxiliary files are not needed by everyone and are big enough that
|
||||
moving them to a separate package speeds up the downloads of the main
|
||||
package significantly. As of now we have one such optional package:
|
||||
|
||||
ttf2pt1-chinese - contains the Chinese conversion maps
|
||||
|
||||
The general versioning policy for the optional packages is the following:
|
||||
These packages may have no direct dependency on the ttf2pt1 version.
|
||||
But they may be updated in future, as well as some versions of optional
|
||||
packages may have dependencies on certain versions of ttf2pt1.
|
||||
To avoid unneccessary extra releases on one hand and keep the updates in
|
||||
sync with the ttf2pt1 itself on the other hand, a new version of an optional
|
||||
package will be released only if there are any changes to it and it will be
|
||||
given the same version number as ttf2pt1 released at the same time. So not
|
||||
every release of ttf2pt1 would have a corresponding release of all optional
|
||||
packages. For example, to get the correct version of optional packages for an
|
||||
imaginary release 8.3.4 of ttf2pt1 you would need to look for optional
|
||||
packages of the highest version not higher than (but possibly equal to) 8.3.4.
|
||||
|
||||
TO DO:
|
||||
------
|
||||
|
||||
- Improve hinting.
|
||||
- Improve the auto-tracing of bitmaps.
|
||||
- Implement the family-level hints.
|
||||
- Add generation of CID-fonts.
|
||||
- Handle the composite glyphs with relative base points.
|
||||
- Preserve the relative width of stems during scaling to 1000x1000 matrix.
|
||||
- Add support for bitmap TTF fonts.
|
||||
- Implement better support of Asian encodings.
|
||||
- Implement automatic creation of ligatures.
|
||||
|
||||
TROUBLESHOOTING AND BUG REPORTS
|
||||
-------------------------------
|
||||
|
||||
Have problems with conversion of some font ? The converter dumps core ? Or your
|
||||
printer refuses to understand the converted fonts ? Or some characters are
|
||||
missing ? Or some characters look strange ?
|
||||
|
||||
Send the bug reports to the ttf2pt1 development mailing list at
|
||||
ttf2pt1-devel@lists.sourceforge.net.
|
||||
|
||||
Try to collect more information about the problem and include it into
|
||||
the bug report. (Of course, even better if you would provide a ready
|
||||
fix, but just a detailed bug report is also good). Provide detailed
|
||||
information about your problem, this will speed up the response greatly.
|
||||
Don't just write "this font looks strange after conversion" but describe
|
||||
what's exactly wrong with it: for example, what characters look wrong
|
||||
and what exactly is wrong about their look. Providing a link to the
|
||||
original font file would be also a good idea. Try to do a little
|
||||
troublehooting and report its result. This not only would help with
|
||||
the fix but may also give you a temporary work-around for the bug.
|
||||
|
||||
First, enable full warnings with option '-W99', save them to
|
||||
a file and read carefully. Sometimes the prolem is with a not implemented
|
||||
feature which is reported in the warnings. Still, reporting about such
|
||||
problems may be a good idea: some features were missed to cut corners,
|
||||
in hope that no real font is using them. So a report about a font using
|
||||
such a feature may motivate someone to implement it. Of course, you
|
||||
may be the most motivated person: after all, you are the one wishing
|
||||
to convert that font. ;-) Seriously, the philosophy "scrath your own itch"
|
||||
seems to be the strongest moving force behind the Open Source software.
|
||||
|
||||
The next step is playing with the options. This serves a dual purpose:
|
||||
on one hand, it helps to localize the bug, on the other hand you may be
|
||||
able to get a working version of the font for the meantime while the
|
||||
bug is being fixed. The typical options to try out are: first '-Ou', if
|
||||
it does not help then '-Os', then '-Oh', then '-Oo'.
|
||||
They are described in a bit more detail above. Try them one by one
|
||||
and in combinations. See if with them the resulting fonts look better.
|
||||
|
||||
On some fonts ttf2pt1 just crashes. Commonly that happens because the
|
||||
font being converted is highly defective (although sometimes the bug
|
||||
is in ttf2pt1 itself). In any case it should not crash, so the reports
|
||||
about such cases will help to handle these defects properly in future.
|
||||
|
||||
We try to respond to the bug reports in a timely fashion but alas, this
|
||||
may not always be possible, especially if the problem is complex.
|
||||
This is a volunteer project and its resources are limited. Because
|
||||
of this we would appreciate bug reports as detailed as possible,
|
||||
and we would appreciate the ready fixes and contributions even more.
|
||||
|
||||
CONTACTS
|
||||
--------
|
||||
|
||||
ttf2pt1-announce@lists.sourceforge.net
|
||||
The mailing list with announcements about ttf2pt1. It is a moderated mailing
|
||||
with extremely low traffic. Everyone is encouraged to subscribe to keep in
|
||||
touch with the current status of project. To subscribe use the Web interface
|
||||
at http://lists.sourceforge.net/mailman/listinfo/ttf2pt1-announce.
|
||||
If you have only e-mail access to the Net then send a subscribe request to
|
||||
the development mailing list ttf2pt1-devel@lists.sourceforge.net and somebody
|
||||
will help you with subscription.
|
||||
|
||||
ttf2pt1-devel@lists.sourceforge.net
|
||||
ttf2pt1-users@lists.sourceforge.net
|
||||
The ttf2pt1 mailing lists for development and users issues. They have not
|
||||
that much traffic either. To subscribe use the Web interface at
|
||||
http://lists.sourceforge.net/mailman/listinfo/ttf2pt1-devel
|
||||
and http://lists.sourceforge.net/mailman/listinfo/ttf2pt1-users.
|
||||
If you have only e-mail access to the Net then send a subscribe request to
|
||||
the development mailing list ttf2pt1-devel@lists.sourceforge.net and somebody
|
||||
will help you with subscription.
|
||||
|
||||
mheath@netspace.net.au
|
||||
Mark Heath
|
||||
|
||||
A.Weeks@mcc.ac.uk
|
||||
Andrew Weeks
|
||||
|
||||
babkin@users.sourceforge.net (preferred)
|
||||
sab123@hotmail.com
|
||||
http://members.bellatlantic.net/~babkin
|
||||
Sergey Babkin
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
||||
http://ttf2pt1.sourceforge.net
|
||||
The main page of the project.
|
||||
|
||||
http://www.netspace.net.au/~mheath/ttf2pt1/
|
||||
The old main page of the project.
|
||||
|
||||
http://sourceforge.net/projects/gnuwin32
|
||||
Precompiled binaries for Windows.
|
||||
|
||||
http://www.lcdf.org/~eddietwo/type/
|
||||
The home page of the Type 1 utilities package.
|
||||
|
||||
http://www.rightbrain.com/pages/books.html
|
||||
The first book about PostScript on the Web, "Thinking in PostScript".
|
||||
|
||||
http://fonts.apple.com/TTRefMan/index.html
|
||||
The True Type reference manual.
|
||||
|
||||
http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf
|
||||
Adobe PostScript reference manual.
|
||||
|
||||
http://partners.adobe.com/asn/developer/PDFS/TN/T1_SPEC.PDF
|
||||
Specification of the Type 1 font format.
|
||||
|
||||
http://partners.adobe.com/asn/developer/PDFS/TN/5015.Type1_Supp.pdf
|
||||
The Type 1 font format supplement.
|
||||
|
||||
http://partners.adobe.com/asn/developer/PDFS/TN/5004.AFM_Spec.pdf
|
||||
Specification of the Adobe font metrics file format.
|
||||
|
||||
http://www.cs.wpi.edu/~matt/courses/cs563/talks/surface/bez_surf.html
|
||||
http://www.cs.wpi.edu/~matt/courses/cs563/talks/curves.html
|
||||
Information about the Bezier curves.
|
||||
|
||||
http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html
|
||||
A stand-alone library supporting the Type1 fonts. Is neccessary
|
||||
to compile the programs other/cmpf and other/dmpf.
|
||||
|
||||
http://www.freetype.org
|
||||
A library supporting the TTF fonts. Also many useful TTF programs
|
||||
are included with it.
|
||||
|
||||
http://heliotrope.homestead.com/files/printsoft.html
|
||||
Moses Gold's collection of links to printing software.
|
||||
|
||||
http://linuxartist.org/fonts/
|
||||
Collection of font-related links.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Following is the Readme of ttf2pfa (true type to type 3 font converter) It
|
||||
covers other issues regarding the use of this software. Please note that
|
||||
although ttf2pfa is a public domain software, ttf2pt1
|
||||
is instead covered by an Open Source license. See the COPYRIGHT
|
||||
file for details.
|
||||
|
||||
Please note also that ttf2pfa has not been maintained for a long time.
|
||||
All of its functionality has been integrated into ttf2pt1 and all the
|
||||
development moved to ttf2pt1, including Andrew Weeks, the author of
|
||||
ttf2pfa. Ttf2pfa is provided for historical reasons only. Please use
|
||||
ttf2pt1 instead.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
True Type to Postscript Font converter
|
||||
--------------------------------------
|
||||
|
||||
My mind is still reeling from the discovery that I was able to write
|
||||
this program. What it does is it reads a Microsoft TrueType font and
|
||||
creates a Postscript font. '_A_ postscript font', that is, not necessarily
|
||||
the same font, you understand, but a fair imitation.
|
||||
|
||||
Run it like this:
|
||||
|
||||
ttf2pfa fontfile.ttf fontname
|
||||
|
||||
The first parameter is the truetype filename, the second is a stem for
|
||||
the output file names. The program will create a fontname.pfa containing
|
||||
the Postscript font and a fontname.afm containing the metrics.
|
||||
|
||||
The motivation behind this is that in Linux if you do not have a
|
||||
Postscript printer, but only some other printer, you can only print
|
||||
Postscript by using Ghostscript. But the fonts that come with
|
||||
Ghostscript are very poor (they are converted from bitmaps and look
|
||||
rather lumpy). This is rather frustrating as the PC running Linux
|
||||
probably has MS-Windows as well and will therefore have truetype fonts,
|
||||
but which are quite useless with Linux, X or Ghostscript.
|
||||
|
||||
The program has been tested on over a hundred different TrueType fonts
|
||||
from various sources, and seems to work fairly well. The converted
|
||||
characters look OK, and the program doesn't seem to crash any more. I'm
|
||||
not sure about the AFM files though, as I have no means to test them.
|
||||
|
||||
The fonts generated will not work with X, as the font rasterizer that
|
||||
comes with X only copes with Type 1 fonts. If I have the time I may
|
||||
modify ttf2pfa to generate Type 1s.
|
||||
|
||||
Copyright issues
|
||||
----------------
|
||||
|
||||
I am putting this program into the public domain, so don't bother
|
||||
sending me any money, I'd only have to declare it for income tax.
|
||||
|
||||
Copyright on fonts, however, is a difficult legal question. Any
|
||||
copyright statements found in a font will be preserved in the output.
|
||||
Whether you are entitled to translate them at all I don't know.
|
||||
|
||||
If you have a license to run a software package, like say MS-Windows, on
|
||||
your PC, then you probably have a right to use any part of it, including
|
||||
fonts, on that PC, even if not using that package for its intended
|
||||
purpose.
|
||||
|
||||
I am not a lawyer, however, so this is not a legal opinion, and may be
|
||||
garbage.
|
||||
|
||||
There shouldn't be a any problem with public domain fonts.
|
||||
|
||||
About the Program
|
||||
-----------------
|
||||
|
||||
It was written in C on a IBM PC running Linux.
|
||||
|
||||
The TrueType format was originally developed by Apple for the MAC, which
|
||||
has opposite endianness to the PC, so to ensure compatibility 16 and 32
|
||||
bit fields are the wrong way round from the PC's point of view. This is
|
||||
the reason for all the 'ntohs' and 'ntohl' calls. Doing it this way
|
||||
means the program will also work on big-endian machines like Suns.
|
||||
|
||||
I doubt whether it will work on a DOS-based PC though.
|
||||
|
||||
The program produces what technically are Type 3 rather than Type 1
|
||||
fonts. They are not compressed or encrypted and are plain text. This is
|
||||
so I (and you) can see what's going on, and (if you're a Postscript guru
|
||||
and really want to) can alter the outlines.
|
||||
|
||||
I only translate the outlines, not the 'instructions' that come with
|
||||
them. This latter task is probably virtually impossible anyway. TrueType
|
||||
outlines are B-splines rather than the Bezier curves that Postscript
|
||||
uses. I believe that my conversion algorithm is reasonably correct, if
|
||||
nothing else because the characters look right.
|
||||
|
||||
Problems that may occur
|
||||
-----------------------
|
||||
|
||||
Most seriously, very complex characters (with lots of outline segments)
|
||||
can make Ghostscript releases 2.x.x fail with a 'limitcheck' error. It
|
||||
is possible that this may happen with some older Postscript printers as
|
||||
well. Such characters will be flagged by the program and there are
|
||||
basically two things you can do. First is to edit the .pfa file to
|
||||
simplify or remove the offending character. This is not really
|
||||
recommended. The second is to use Ghostscript release 3, if you can get
|
||||
it. This has much larger limits and does not seem to have any problems
|
||||
with complex characters.
|
||||
|
||||
Then there are buggy fonts (yes, a font can have bugs). I try to deal
|
||||
with these in as sane a manner as possible, but it's not always
|
||||
possible.
|
||||
|
||||
Encodings
|
||||
---------
|
||||
|
||||
A postscript font must have a 256 element array, called an encoding,
|
||||
each element of which is a name, which is also the name of a procedure
|
||||
contained within the font. The 'BuildChar' command takes a byte and uses
|
||||
it to index the encoding array to find a character name, and then looks
|
||||
that up in the font's procedure table find the commands to draw the
|
||||
glyph. However, not all characters need be in the encoding array. Those
|
||||
that are not cannot be drawn (at least not using 'show'), however it is
|
||||
possible to 're-encode' the font to enable these characters. There are
|
||||
several standard encodings: Adobe's original, ISO-Latin1 and Symbol
|
||||
being the most commonly encountered.
|
||||
|
||||
TrueType fonts are organised differently. As well as the glyph
|
||||
descriptions there are a number of tables. One of these is a mapping
|
||||
from a character set into the glyph array, and another is a mapping from
|
||||
the glyph array into a set of Postscript character names. The problems
|
||||
are:
|
||||
1) Microsoft uses Unicode, a 16-bit system, to encode the font.
|
||||
2) that more than one glyph is given the same Postscript name.
|
||||
|
||||
I deal with (1) by assuming a Latin1 encoding. The MS-Windows and
|
||||
Unicode character sets are both supersets of ISO-8859-1. This usually
|
||||
means that most characters will be properly encoded, but you should be
|
||||
warned that some software may assume that fonts have an Adobe encoding.
|
||||
Symbol, or Dingbat, fonts are in fact less of a problem, as they have
|
||||
private encodings starting at 0xF000. It is easy to just lose the top
|
||||
byte.
|
||||
|
||||
Postscript fonts can be re-encoded, either manually, or by software.
|
||||
Groff, for example, generates postscript that re-encodes fonts with the
|
||||
Adobe encoding. The problem here is that not all characters in the Adobe
|
||||
set are in the MS-Windows set. In particular there are no fi and fl
|
||||
ligatures. This means that conversions of the versions of
|
||||
Times-New-Roman and Arial that come with MS-Windows cannot be used
|
||||
blindly as replacements for Adobe Times-Roman and Helvetica. You can get
|
||||
expanded versions of MS fonts from Microsoft's web site which do contain
|
||||
these ligatures (and a lot else besides).
|
||||
|
||||
I deal with (2) by creating new character names. This can be error-prone
|
||||
because I do not know which of them is the correct glyph to give the
|
||||
name to. Some (buggy) fonts have large numbers of blank glyphs, all with
|
||||
the same name.
|
||||
|
||||
(almost every TrueType font has three glyphs called .notdef, one of them
|
||||
is usually an empty square shape, one has no outline and has zero width,
|
||||
and one has no outline and a positive width. This example is not really
|
||||
a problem with well formed fonts since the .notdef characters are only
|
||||
used for unprintable characters, which shouldn't occur in your documents
|
||||
anyway).
|
||||
4
pdf/lib/ttf2ufm/src/README.FIRST
Executable file
4
pdf/lib/ttf2ufm/src/README.FIRST
Executable file
@@ -0,0 +1,4 @@
|
||||
To get the plain-text README and installation guides run:
|
||||
|
||||
make docs
|
||||
|
||||
1182
pdf/lib/ttf2ufm/src/README.html
Executable file
1182
pdf/lib/ttf2ufm/src/README.html
Executable file
File diff suppressed because it is too large
Load Diff
279
pdf/lib/ttf2ufm/src/app/RPM/Makefile
Executable file
279
pdf/lib/ttf2ufm/src/app/RPM/Makefile
Executable file
@@ -0,0 +1,279 @@
|
||||
|
||||
# This file should be configured before running `make'.
|
||||
# Uncomment or change the values that are relevant for your OS.
|
||||
|
||||
# The preferred C compiler (by default use the OS-specific default value).
|
||||
# For BSD/OS, FreeBSD, Linux (all flavors), NetBSD, OpenBSD the default
|
||||
# compiler is GNU C.
|
||||
# (Note please the politically correct ordering by alphabet ! :-)
|
||||
#
|
||||
# Use GNU C even if it's not the default compiler
|
||||
#
|
||||
CC=gcc
|
||||
#
|
||||
# Use the standard ANSI C compiler on HP-UX even if it's not default
|
||||
#
|
||||
#CC=c89
|
||||
|
||||
#
|
||||
# The system-dependent flags for the C compiler
|
||||
#
|
||||
# Default
|
||||
|
||||
CFLAGS_SYS= -O2 -D_GNU_SOURCE
|
||||
|
||||
# For GNU C
|
||||
#
|
||||
CFLAGS_SYS= -O2 -D_GNU_SOURCE
|
||||
#
|
||||
# For GNU C with long options support library (Linux etc.)
|
||||
#
|
||||
CFLAGS_SYS= -O2 -D_GNU_SOURCE
|
||||
#
|
||||
# For GNU C on HP-UX/PA-RISC 1.1
|
||||
#
|
||||
#CFLAGS_SYS= -O2 -Wa,-w
|
||||
#
|
||||
# For the standard ANSI C on HP-UX
|
||||
#
|
||||
#CFLAGS_SYS= +O2 -D_HPUX_SOURCE
|
||||
|
||||
#
|
||||
# The system-dependent libraries
|
||||
#
|
||||
# Defalut (for the BSD-style OSes)
|
||||
|
||||
LIBS_SYS= -lm
|
||||
|
||||
# For SystemV (such as SCO, UnixWare, Solaris, but _NOT_ Linux or HP-UX)
|
||||
#
|
||||
#LIBS_SYS= -lm -lsocket
|
||||
|
||||
#
|
||||
# The flags for C compiler for the FreeType-2 library (disabled by default).
|
||||
# This WON'T BUILD with FT2-beta8, use the FreeType release 2.0.4
|
||||
# http://download.sourceforge.net/freetype/freetype-2.0.4.tar.gz
|
||||
|
||||
CFLAGS_FT=
|
||||
|
||||
# To enable use of the FreeType-2 library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment LIBS_FT
|
||||
#
|
||||
#CFLAGS_FT = -DUSE_FREETYPE -I/usr/include/freetype2 -I/usr/include
|
||||
|
||||
#
|
||||
# The FreeType-2 library flags (disabled by default)
|
||||
|
||||
LIBS_FT=
|
||||
|
||||
# To enable use of the FreeType-2 library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment CFLAGS_FT
|
||||
#
|
||||
#LIBS_FT= -L/usr/lib -lfreetype
|
||||
|
||||
#
|
||||
# The flags for C compiler for the Autotrace library (disabled by default).
|
||||
# USE OF THIS FEATURE IS STRONGLY DISCOURAGED, THE BUILT-IN TRACING
|
||||
# (AKA VECTORIZATION) PROVIDES MUCH BETTER RESULTS.
|
||||
# The tested version is 0.29a (and the fonts produced with it are
|
||||
# absolutely not usable).
|
||||
# http://download.sourceforge.net/autotrace/autotrace-0.29.tar.gz
|
||||
|
||||
CFLAGS_AT=
|
||||
|
||||
# To enable use of the Autotrace library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment LIBS_AT
|
||||
#
|
||||
#CFLAGS_AT = -DUSE_AUTOTRACE -I/usr/local/include
|
||||
|
||||
#
|
||||
# The Autotrace library flags (disabled by default)
|
||||
|
||||
LIBS_AT=
|
||||
|
||||
# To enable use of the Autotrace library
|
||||
# (if the include and lib directory do not match your installation,
|
||||
# modify them), also uncomment CFLAGS_AT
|
||||
#
|
||||
#LIBS_AT= -L/usr/local/lib -lautotrace
|
||||
|
||||
#
|
||||
# Preference of front-ends if multiple parsers match a file
|
||||
# (by default the build-in front-end takes preference over FreeType)
|
||||
|
||||
CFLAGS_PREF=
|
||||
|
||||
# To prefer FreeType (if enabled):
|
||||
#
|
||||
#CFLAGS_PREF= -DPREFER_FREETYPE
|
||||
|
||||
# Uncomment the second line to not compile t1asm into ttf2pt1
|
||||
CFLAGS_EXTT1ASM=
|
||||
#CFLAGS_EXTT1ASM= -DEXTERNAL_T1ASM
|
||||
|
||||
CFLAGS= $(CFLAGS_SYS) $(CFLAGS_FT) $(CFLAGS_AT) $(CFLAGS_PREF)
|
||||
LIBS= $(LIBS_SYS) $(LIBS_FT) $(LIBS_AT)
|
||||
|
||||
# Installation-related stuff
|
||||
#
|
||||
# The base dir for installation and subdirs in it
|
||||
INSTDIR = /home/eclecticgeek/apps
|
||||
# for binaries
|
||||
BINDIR = $(INSTDIR)/bin
|
||||
# for binaries of little general interest
|
||||
LIBXDIR = $(INSTDIR)/libexec/ttf2pt1
|
||||
# for scripts, maps/encodings etc.
|
||||
SHAREDIR = $(INSTDIR)/share/ttf2pt1
|
||||
MANDIR = $(INSTDIR)/man
|
||||
|
||||
# owner and group of installed files
|
||||
OWNER = eclecticgeek
|
||||
GROUP = pg1755828
|
||||
|
||||
# After you have configured the Makefile, comment out the following
|
||||
# definition:
|
||||
##warning: docs
|
||||
## @echo >&2
|
||||
## @echo " You have to configure the Makefile before running make!" >&2
|
||||
## @echo "(or if you are lazy and hope that it will work as is run \`make all')">&2
|
||||
## @echo >&2
|
||||
#
|
||||
DOCS=CHANGES README FONTS FONTS.hpux encodings/README other/README \
|
||||
app/X11/README app/netscape/README app/TeX/README
|
||||
|
||||
SUBDIRS = app encodings maps scripts other
|
||||
TXTFILES = README* FONTS* CHANGES* COPYRIGHT
|
||||
|
||||
MANS1=ttf2pt1.1 ttf2pt1_convert.1 ttf2pt1_x2gs.1
|
||||
MANS=$(MANS1) $(MANS5)
|
||||
|
||||
all: t1asm ttf2pt1 docs mans rpm
|
||||
|
||||
docs: $(DOCS)
|
||||
|
||||
mans: $(MANS)
|
||||
|
||||
clean:
|
||||
rm -f t1asm ttf2pt1 *.o app/RPM/Makefile app/RPM/*.spec *.core core.* core
|
||||
( cd other && make clean; )
|
||||
( cd app/netscape && make clean; )
|
||||
|
||||
veryclean: clean
|
||||
rm -f $(DOCS) $(MANS)
|
||||
|
||||
rpm: app/RPM/Makefile app/RPM/ttf2pt1.spec
|
||||
|
||||
ttf2pt1.1: README.html
|
||||
scripts/html2man . . <README.html
|
||||
|
||||
ttf2pt1_convert.1 ttf2pt1_x2gs.1: FONTS.html
|
||||
scripts/html2man . . <FONTS.html
|
||||
|
||||
app/RPM/Makefile: Makefile
|
||||
# sed 's/^CFLAGS_SYS.*=.*$$/CFLAGS_SYS= -O2 -D_GNU_SOURCE/;/warning:/,/^$$/s/^/#/' <Makefile >app/RPM/Makefile
|
||||
#
|
||||
app/RPM/ttf2pt1.spec: app/RPM/ttf2pt1.spec.src version.h
|
||||
sed 's/^Version:.*/Version: '`grep TTF2PT1_VERSION version.h| cut -d\" -f2`'/' <app/RPM/ttf2pt1.spec.src >$@
|
||||
|
||||
t1asm: t1asm.c
|
||||
$(CC) $(CFLAGS) -o t1asm -DSTANDALONE t1asm.c $(LIBS)
|
||||
|
||||
ttf2pt1.o: ttf2pt1.c ttf.h pt1.h global.h version.h
|
||||
$(CC) $(CFLAGS) -c ttf2pt1.c
|
||||
|
||||
pt1.o: pt1.c ttf.h pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c pt1.c
|
||||
|
||||
ttf.o: ttf.c ttf.h pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c ttf.c
|
||||
|
||||
ft.o: ft.c pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c ft.c
|
||||
|
||||
bdf.o: bdf.c pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c bdf.c
|
||||
|
||||
bitmap.o: bitmap.c pt1.h global.h
|
||||
$(CC) $(CFLAGS) -c bitmap.c
|
||||
|
||||
runt1asm.o: runt1asm.c global.h
|
||||
$(CC) $(CFLAGS) $(CFLAGS_EXTT1ASM) -c runt1asm.c
|
||||
|
||||
ttf2pt1: ttf2pt1.o pt1.o runt1asm.o ttf.o ft.o bdf.o bitmap.o
|
||||
$(CC) $(CFLAGS) -o ttf2pt1 ttf2pt1.o pt1.o runt1asm.o ttf.o ft.o bdf.o bitmap.o $(LIBS)
|
||||
|
||||
CHANGES: CHANGES.html
|
||||
scripts/unhtml <CHANGES.html >CHANGES
|
||||
|
||||
README: README.html
|
||||
scripts/unhtml <README.html >README
|
||||
|
||||
encodings/README: encodings/README.html
|
||||
scripts/unhtml <encodings/README.html >encodings/README
|
||||
|
||||
other/README: other/README.html
|
||||
scripts/unhtml <other/README.html >other/README
|
||||
|
||||
app/X11/README: app/X11/README.html
|
||||
scripts/unhtml <app/X11/README.html >app/X11/README
|
||||
|
||||
app/netscape/README: app/netscape/README.html
|
||||
scripts/unhtml <app/netscape/README.html >app/netscape/README
|
||||
|
||||
app/TeX/README: app/TeX/README.html
|
||||
scripts/unhtml <app/TeX/README.html >app/TeX/README
|
||||
|
||||
FONTS: FONTS.html
|
||||
scripts/unhtml <FONTS.html >FONTS
|
||||
|
||||
FONTS.hpux: FONTS.hpux.html
|
||||
scripts/unhtml <FONTS.hpux.html >FONTS.hpux
|
||||
|
||||
install: all
|
||||
scripts/inst_dir $(BINDIR) $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(LIBXDIR) $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(SHAREDIR) $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(MANDIR)/man1 $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_dir $(MANDIR)/man5 $(OWNER) $(GROUP) 0755
|
||||
cp -R $(TXTFILES) $(SUBDIRS) $(SHAREDIR)
|
||||
chown -R $(OWNER) $(SHAREDIR)
|
||||
chgrp -R $(GROUP) $(SHAREDIR)
|
||||
chmod -R go-w $(SHAREDIR)
|
||||
scripts/inst_file ttf2pt1 $(BINDIR)/ttf2pt1 $(OWNER) $(GROUP) 0755
|
||||
[ -f $(BINDIR)/t1asm ] || scripts/inst_file t1asm $(LIBXDIR)/t1asm $(OWNER) $(GROUP) 0755
|
||||
sed -e 's|^TTF2PT1_BINDIR=$$|TTF2PT1_BINDIR=$(BINDIR)|;' \
|
||||
-e 's|^TTF2PT1_LIBXDIR=$$|TTF2PT1_LIBXDIR=$(LIBXDIR)|;' \
|
||||
-e 's|^TTF2PT1_SHAREDIR=$$|TTF2PT1_SHAREDIR=$(SHAREDIR)|;' <scripts/convert >cvt.tmp
|
||||
scripts/inst_file cvt.tmp $(BINDIR)/ttf2pt1_convert $(OWNER) $(GROUP) 0755
|
||||
scripts/inst_file cvt.tmp $(SHAREDIR)/scripts/convert $(OWNER) $(GROUP) 0755
|
||||
rm cvt.tmp
|
||||
scripts/inst_file scripts/x2gs $(BINDIR)/ttf2pt1_x2gs $(OWNER) $(GROUP) 0755
|
||||
for i in $(MANS1); do { \
|
||||
sed -e 's|TTF2PT1_BINDIR|$(BINDIR)|;' \
|
||||
-e 's|TTF2PT1_LIBXDIR|$(LIBXDIR)|;' \
|
||||
-e 's|TTF2PT1_SHAREDIR|$(SHAREDIR)|;' <$$i >$(MANDIR)/man1/$$i \
|
||||
&& chown $(OWNER) $(MANDIR)/man1/$$i \
|
||||
&& chgrp $(GROUP) $(MANDIR)/man1/$$i \
|
||||
&& chmod 0644 $(MANDIR)/man1/$$i \
|
||||
|| exit 1; \
|
||||
} done
|
||||
|
||||
uninstall:
|
||||
rm -f $(BINDIR)/ttf2pt1 $(BINDIR)/ttf2pt1_convert $(BINDIR)/ttf2pt1_x2gs
|
||||
rm -rf $(LIBXDIR)
|
||||
rm -rf $(SHAREDIR)
|
||||
for i in $(MANS1); do { \
|
||||
rm -f $(MANDIR)/man1/$$i $(MANDIR)/man1/$$i.gz; \
|
||||
} done
|
||||
|
||||
|
||||
# targets for automatic generation of releases and snapshots
|
||||
|
||||
snapshot:
|
||||
scripts/mkrel snapshot
|
||||
|
||||
release:
|
||||
scripts/mkrel release
|
||||
40
pdf/lib/ttf2ufm/src/app/RPM/ttf2pt1.spec
Executable file
40
pdf/lib/ttf2ufm/src/app/RPM/ttf2pt1.spec
Executable file
@@ -0,0 +1,40 @@
|
||||
Summary: TrueType to Adobe Type 1 font converter
|
||||
Name: ttf2pt1
|
||||
Version: 3.4.4
|
||||
Release: 1jv
|
||||
Source: %{name}-%{version}.tgz
|
||||
Copyright: Distributable
|
||||
Group: Utilities/Printing
|
||||
BuildRoot: /var/tmp/ttf2pt1
|
||||
|
||||
%description
|
||||
* True Type Font to Adobe Type 1 font converter
|
||||
* By Mark Heath <mheath@netspace.net.au>
|
||||
* Based on ttf2pfa by Andrew Weeks <ccsaw@bath.ac.uk>
|
||||
* With help from Frank M. Siegert <fms@this.net>
|
||||
|
||||
%prep
|
||||
%setup
|
||||
|
||||
%build
|
||||
make all
|
||||
|
||||
%install
|
||||
rm -fr $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/local/share/%{name}
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/local/doc
|
||||
|
||||
install -s -m 0555 ttf2pt1 $RPM_BUILD_ROOT/usr/local/bin
|
||||
install -m 0555 scripts/* $RPM_BUILD_ROOT/usr/local/share/%{name}
|
||||
chmod 0444 $RPM_BUILD_ROOT/usr/local/share/%{name}/convert.cfg.sample
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(644, root, root, 755)
|
||||
%doc README README.html INSTALL INSTALL.html
|
||||
/usr/local/bin/ttf2pt1
|
||||
/usr/local/share/%{name}
|
||||
|
||||
40
pdf/lib/ttf2ufm/src/app/RPM/ttf2pt1.spec.src
Executable file
40
pdf/lib/ttf2ufm/src/app/RPM/ttf2pt1.spec.src
Executable file
@@ -0,0 +1,40 @@
|
||||
Summary: TrueType to Adobe Type 1 font converter
|
||||
Name: ttf2pt1
|
||||
Version: XXX
|
||||
Release: 1jv
|
||||
Source: %{name}-%{version}.tgz
|
||||
Copyright: Distributable
|
||||
Group: Utilities/Printing
|
||||
BuildRoot: /var/tmp/ttf2pt1
|
||||
|
||||
%description
|
||||
* True Type Font to Adobe Type 1 font converter
|
||||
* By Mark Heath <mheath@netspace.net.au>
|
||||
* Based on ttf2pfa by Andrew Weeks <ccsaw@bath.ac.uk>
|
||||
* With help from Frank M. Siegert <fms@this.net>
|
||||
|
||||
%prep
|
||||
%setup
|
||||
|
||||
%build
|
||||
make all
|
||||
|
||||
%install
|
||||
rm -fr $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/local/share/%{name}
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/local/doc
|
||||
|
||||
install -s -m 0555 ttf2pt1 $RPM_BUILD_ROOT/usr/local/bin
|
||||
install -m 0555 scripts/* $RPM_BUILD_ROOT/usr/local/share/%{name}
|
||||
chmod 0444 $RPM_BUILD_ROOT/usr/local/share/%{name}/convert.cfg.sample
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(644, root, root, 755)
|
||||
%doc README README.html INSTALL INSTALL.html
|
||||
/usr/local/bin/ttf2pt1
|
||||
/usr/local/share/%{name}
|
||||
|
||||
51
pdf/lib/ttf2ufm/src/app/TeX/README
Executable file
51
pdf/lib/ttf2ufm/src/app/TeX/README
Executable file
@@ -0,0 +1,51 @@
|
||||
Scripts to support CJK-LaTeX
|
||||
|
||||
by Mike Fabian
|
||||
<mfabian@suse.de>
|
||||
|
||||
The tiny Perl-script 'sfd2map' converts .sfd files (as used by
|
||||
CJK-LaTeX) to .map files (as used by ttf2pt1).
|
||||
|
||||
Actually I currently don't use that script stand-alone for performance
|
||||
reasons.
|
||||
|
||||
Currently I use such a conversion in another small script 'cjk-latex-config'
|
||||
(attached as well) which creates .tfm files usable with CJK-LaTeX
|
||||
from TrueType fonts as listed in /etc/ttf2pk/ttfonts.map. When called like
|
||||
cjk-latex-config --type1
|
||||
this script will use ttf2pt1 to generate .pfb files as well from these TrueType
|
||||
fonts to be used with CJK-LaTeX.
|
||||
|
||||
The .sfd files cannot be directly used as input to ttf2pt1 because the
|
||||
format of the .map files which ttf2pt1 expects is slightly different,
|
||||
therefore I made the 'sfd2map' converter script.
|
||||
|
||||
But then I noticed that I would have to parse the generated map file
|
||||
*again* to get a list of the plane numbers to use. That seemed to be a
|
||||
bit wastful because I had just parsed the .sfd file to convert it to
|
||||
.map, therefore I included sfd2map as a function in 'cjk-latex-config'
|
||||
as well and collected the plane numbers during the conversion.
|
||||
|
||||
But 'cjk-latex-config' is maybe a little bit SuSE specific, therefore
|
||||
I kept 'sfd2map' also as a standalong script. Use it if you like.
|
||||
|
||||
'cjk-latex-config' calls another small script 'cjk-latex-t1mapgen'
|
||||
to generate a cjk-latex.map file containing something like
|
||||
cyberb00 BitstreamCyberbit-Roman-00 <cyberb00.pfb
|
||||
cyberb01 BitstreamCyberbit-Roman-01 <cyberb01.pfb
|
||||
cyberb02 BitstreamCyberbit-Roman-02 <cyberb02.pfb
|
||||
[...]
|
||||
after all .pfb files have been generated.
|
||||
|
||||
Maybe this is also SuSE specific, I'm not sure about in what
|
||||
directories the relevant files are stored on other Linux-like systems.
|
||||
|
||||
I'm not yet sure whether they work on other systems beside SuSE Linux.
|
||||
They have hard coded path names where to find the TrueType fonts,
|
||||
ttfonts.map, the TeX fonts etc and cjk-latex-config checks
|
||||
whether freetype-tools.rpm is installed. freetype-tools.rpm might
|
||||
have another name for other distributions and for distributions
|
||||
which don't use rpm this check can't work anyway.
|
||||
|
||||
These are small details and it should not be difficult to adapt the
|
||||
scripts for other Linux-like systems though.
|
||||
80
pdf/lib/ttf2ufm/src/app/TeX/README.html
Executable file
80
pdf/lib/ttf2ufm/src/app/TeX/README.html
Executable file
@@ -0,0 +1,80 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Scripts to support CJK-LaTeX
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
Scripts to support CJK-LaTeX
|
||||
</H2>
|
||||
|
||||
by Mike Fabian
|
||||
<mfabian@suse.de>
|
||||
<p>
|
||||
|
||||
The tiny Perl-script '<tt>sfd2map</tt>' converts <tt>.sfd</tt> files (as used by
|
||||
CJK-LaTeX) to <tt>.map</tt> files (as used by ttf2pt1).
|
||||
<p>
|
||||
|
||||
Actually I currently don't use that script stand-alone for performance
|
||||
reasons.
|
||||
<p>
|
||||
|
||||
Currently I use such a conversion in another small script '<tt>cjk-latex-config</tt>'
|
||||
(attached as well) which creates <tt>.tfm</tt> files usable with CJK-LaTeX
|
||||
from TrueType fonts as listed in <tt>/etc/ttf2pk/ttfonts.map</tt>. When called like
|
||||
<br>
|
||||
<tt>cjk-latex-config --type1</tt>
|
||||
<br>
|
||||
this script will use ttf2pt1 to generate <tt>.pfb</tt> files as well from these TrueType
|
||||
fonts to be used with CJK-LaTeX.
|
||||
<p>
|
||||
|
||||
The <tt>.sfd</tt> files cannot be directly used as input to ttf2pt1 because the
|
||||
format of the <tt>.map</tt> files which ttf2pt1 expects is slightly different,
|
||||
therefore I made the '<tt>sfd2map</tt>' converter script.
|
||||
<p>
|
||||
|
||||
But then I noticed that I would have to parse the generated map file
|
||||
*again* to get a list of the plane numbers to use. That seemed to be a
|
||||
bit wastful because I had just parsed the <tt>.sfd</tt> file to convert it to
|
||||
<tt>.map</tt>, therefore I included <tt>sfd2map</tt> as a function in '<tt>cjk-latex-config</tt>'
|
||||
as well and collected the plane numbers during the conversion.
|
||||
<p>
|
||||
|
||||
But '<tt>cjk-latex-config</tt>' is maybe a little bit SuSE specific, therefore
|
||||
I kept '<tt>sfd2map</tt>' also as a standalong script. Use it if you like.
|
||||
<p>
|
||||
|
||||
'<tt>cjk-latex-config</tt>' calls another small script '<tt>cjk-latex-t1mapgen</tt>'
|
||||
to generate a <tt>cjk-latex.map</tt> file containing something like
|
||||
<br>
|
||||
<tt> cyberb00 BitstreamCyberbit-Roman-00 <cyberb00.pfb</tt>
|
||||
<br>
|
||||
<tt> cyberb01 BitstreamCyberbit-Roman-01 <cyberb01.pfb</tt>
|
||||
<br>
|
||||
<tt> cyberb02 BitstreamCyberbit-Roman-02 <cyberb02.pfb</tt>
|
||||
<br>
|
||||
<tt> [...]</tt>
|
||||
<br>
|
||||
after all <tt>.pfb</tt> files have been generated.
|
||||
<p>
|
||||
|
||||
Maybe this is also SuSE specific, I'm not sure about in what
|
||||
directories the relevant files are stored on other Linux-like systems.
|
||||
<p>
|
||||
|
||||
I'm not yet sure whether they work on other systems beside SuSE Linux.
|
||||
They have hard coded path names where to find the TrueType fonts,
|
||||
<tt>ttfonts.map</tt>, the TeX fonts etc and <tt>cjk-latex-config</tt> checks
|
||||
whether freetype-tools.rpm is installed. freetype-tools.rpm might
|
||||
have another name for other distributions and for distributions
|
||||
which don't use rpm this check can't work anyway.
|
||||
<p>
|
||||
|
||||
These are small details and it should not be difficult to adapt the
|
||||
scripts for other Linux-like systems though.
|
||||
<p>
|
||||
</BODY>
|
||||
</HTML>
|
||||
352
pdf/lib/ttf2ufm/src/app/TeX/cjk-latex-config
Executable file
352
pdf/lib/ttf2ufm/src/app/TeX/cjk-latex-config
Executable file
@@ -0,0 +1,352 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# Author: Mike Fabian <mfabian@suse.de>, 2002
|
||||
#
|
||||
|
||||
use English;
|
||||
use Getopt::Long;
|
||||
|
||||
# check if we are started as root
|
||||
# only one of UID and USER must be set correctly
|
||||
|
||||
if ($UID != 0 && $ENV{USER} !~ /root/) {
|
||||
print "You must be root to start $0\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if (system ("rpm -q freetype-tools >/dev/null 2>&1") != 0) {
|
||||
print "freetype-tools package missing, exiting.\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
|
||||
sub usage {
|
||||
print "Usage: cjk-latex-config [--verbose|v] [--force|f] [--type1|t]\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# Process command line options
|
||||
my %opt;
|
||||
unless (GetOptions(\%opt,
|
||||
'verbose|v', \$OPT_VERBOSE,
|
||||
'force|f', \$OPT_FORCE,
|
||||
'type1|t', \$OPT_TYPE1,
|
||||
)) {
|
||||
&usage();
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# to make sure ttf2tfm finds the .sdf files:
|
||||
system("texhash");
|
||||
|
||||
$tfm_created = 0;
|
||||
$type1_created = 0;
|
||||
|
||||
system("mkdir -p /usr/share/texmf/fonts/truetype/");
|
||||
|
||||
open (TTFONTS_MAP, "/etc/ttf2pk/ttfonts.map");
|
||||
|
||||
while (<TTFONTS_MAP>) {
|
||||
|
||||
chomp($ARG);
|
||||
|
||||
if ($ARG =~ /\@[a-zA-Z0-9\/]+\@/) {
|
||||
|
||||
if($OPT_VERBOSE) {
|
||||
print "----------------------------------------------------------------------\n";
|
||||
print "$ARG\n";
|
||||
}
|
||||
|
||||
@fields = split(/\s+/, $ARG);
|
||||
|
||||
$tt_dir = "/usr/X11R6/lib/X11/fonts/truetype/";
|
||||
$tt_basename = $fields[1];
|
||||
|
||||
if ($fields[0] =~ /([^\s]+)\@[a-zA-Z0-9\/]+\@/) {
|
||||
$latex_font_name = $1;
|
||||
} else {
|
||||
print "can't find latex font name.\n";
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ($fields[0] =~ /\@([a-zA-Z0-9\/]+)\@/) {
|
||||
$sfd_name = $1;
|
||||
$sfd_name =~ /.*\/([a-zA-Z0-9]+)/;
|
||||
$sfd_basename = $1;
|
||||
} else {
|
||||
print "can't find sfd_name.\n";
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ($ARG =~ /Pid=([0-9]+)/) {
|
||||
$pid = "$1";
|
||||
} else {
|
||||
$pid = "3";
|
||||
}
|
||||
|
||||
if ($ARG =~ /Eid=([0-9]+)/) {
|
||||
$eid = "$1";
|
||||
} else {
|
||||
$eid = "1";
|
||||
}
|
||||
|
||||
if ($ARG =~ /Slant=([0-9.]+)/) {
|
||||
$slant = $1;
|
||||
$slant_opt = "-s $1";
|
||||
} else {
|
||||
$slant = 0;
|
||||
$slant_opt = "-s 0";
|
||||
}
|
||||
|
||||
if ($ARG =~ /Rotate=(Yes)/) {
|
||||
$rotate = 1;
|
||||
$rotate_opt = "-x";
|
||||
} else {
|
||||
$rotate = 0;
|
||||
$rotate_opt = "";
|
||||
}
|
||||
|
||||
if (-e "$tt_dir/$tt_basename") {
|
||||
symlink("$tt_dir/$tt_basename",
|
||||
"/usr/share/texmf/fonts/truetype/$tt_basename");
|
||||
$tfm_dir = "/usr/share/texmf/fonts/tfm/cjk-latex/";
|
||||
$type1_dir = "/usr/share/texmf/fonts/type1/cjk-latex/";
|
||||
|
||||
if (0 != create_or_update_tfm ()) {
|
||||
print "creating .tfm failed.\n";
|
||||
}
|
||||
if ($OPT_TYPE1 && $slant == 0 && $rotate == 0) {
|
||||
if (0 != create_or_update_type1 ()) {
|
||||
print "creating type1 font failed.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($type1_created) {
|
||||
$command = "cjk-latex-t1mapgen $type1_dir";
|
||||
if (0 != system ($command)) {
|
||||
print "$command failed.\n";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ($tfm_created || $type1_created) {
|
||||
system("texhash");
|
||||
}
|
||||
|
||||
|
||||
exit 0;
|
||||
|
||||
|
||||
######################################################################
|
||||
|
||||
sub create_or_update_tfm {
|
||||
|
||||
if ($OPT_FORCE ||
|
||||
mtime_differs_or_missing ("$tt_dir/$tt_basename",
|
||||
"$tfm_dir/$sfd_basename/$latex_font_name/")) {
|
||||
|
||||
if (0 != system ("mkdir -p $tfm_dir/$sfd_basename/$latex_font_name/")) {
|
||||
print "mkdir -p $tfm_dir/$sfd_basename/$latex_font_name/ failed.\n";
|
||||
exit 1;
|
||||
}
|
||||
if (! chdir ("$tfm_dir/$sfd_basename/$latex_font_name/")) {
|
||||
print "can't chdir to $tfm_dir/$sfd_basename/$latex_font_name/\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
$command = "ttf2tfm $tt_dir/$tt_basename ";
|
||||
unless ($OPT_VERBOSE) {
|
||||
$command .= " -q";
|
||||
}
|
||||
$command .= " -P $pid -E $eid $rotate_opt $slant_opt $latex_font_name\@$sfd_name\@";
|
||||
if ($OPT_VERBOSE) {
|
||||
print "$command\n";
|
||||
} else {
|
||||
$command .= " > /dev/null 2>&1";
|
||||
print "$latex_font_name\@$sfd_name\@: calling ttf2tfm ...\n";
|
||||
}
|
||||
if (0 != system($command)) {
|
||||
print "$command failed.\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
# success, mark this by giving the created directory the same time stamp
|
||||
# as the TT-font:
|
||||
system("touch -r $tt_dir/$tt_basename $tfm_dir/$sfd_basename/$latex_font_name/");
|
||||
$tfm_created = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
######################################################################
|
||||
|
||||
sub create_or_update_type1 {
|
||||
|
||||
if ($OPT_FORCE ||
|
||||
mtime_differs_or_missing ("$tt_dir/$tt_basename",
|
||||
"$type1_dir/$sfd_basename/$latex_font_name/")) {
|
||||
|
||||
if (0 != system ("mkdir -p $type1_dir/$sfd_basename/$latex_font_name/")) {
|
||||
print "mkdir -p $type1_dir/$sfd_basename/$latex_font_name/ failed.\n";
|
||||
exit 1;
|
||||
}
|
||||
if (! chdir ("$type1_dir/$sfd_basename/$latex_font_name/")) {
|
||||
print "can't chdir to $type1_dir/$sfd_basename/$latex_font_name/\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if (grep(/$tt_basename/,("wadalab-gothic.ttf","watanabe-mincho.ttf"))) {
|
||||
print "$tt_basename does not work with ttf2pt1, skipping ...\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
# disable smoothing of outlines for broken fonts
|
||||
# (for details see 'man ttf2pt1'):
|
||||
my $smoothing_opt = " ";
|
||||
if (grep(/$tt_basename/,("kochi-gothic.ttf"))) {
|
||||
print "$tt_basename broken, disabling smoothing of outlines.\n";
|
||||
$smoothing_opt = " -O s ";
|
||||
}
|
||||
|
||||
$sfd_file = "/usr/share/texmf/ttf2tfm/$sfd_basename.sfd";
|
||||
$map_file = `mktemp /tmp/cjk-latex-config-map.XXXXXX`;
|
||||
chomp $map_file;
|
||||
if ($map_file eq "") {
|
||||
print "mktemp /tmp/cjk-latex-config-map.XXXXXX failed.\n";
|
||||
}
|
||||
|
||||
@planes = sfd2map($sfd_file,$map_file);
|
||||
if ($#planes == -1) {
|
||||
print "sfd2map($sfd_file,$map_file) failed.\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
for my $plane (@planes) {
|
||||
if ($OPT_VERBOSE) {
|
||||
$command = "ttf2pt1 -W 99 ";
|
||||
} else {
|
||||
$command = "ttf2pt1 -W 0 ";
|
||||
}
|
||||
$command .= $smoothing_opt;
|
||||
$command .= " -p ft -b -G a -m h=5000 ";
|
||||
$command .= " -L $map_file+pid=$pid,eid=$eid,$plane ";
|
||||
$command .= " $tt_dir/$tt_basename $latex_font_name$plane";
|
||||
if ($OPT_VERBOSE) {
|
||||
print "$command\n";
|
||||
} else {
|
||||
$command .= " > /dev/null 2>&1";
|
||||
print "$latex_font_name\@$sfd_name\@, plane=$plane: calling ttf2pt1 ...\n";
|
||||
}
|
||||
if (0 != system($command)) {
|
||||
print "$command failed.\n";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
unlink $map_file;
|
||||
|
||||
# success, mark this by giving the created directory the same time stamp
|
||||
# as the TT-font:
|
||||
system("touch -r $tt_dir/$tt_basename $type1_dir/$sfd_basename/$latex_font_name/");
|
||||
$type1_created = 1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
######################################################################
|
||||
|
||||
sub sfd2map {
|
||||
my($sfd_file,$map_file) = @_;
|
||||
if (! open (SFD, "<$sfd_file")) {
|
||||
print "cannot open $sfd_file\n";
|
||||
return ();
|
||||
}
|
||||
if (! open (MAP, ">$map_file")) {
|
||||
print "cannot open $map_file\n";
|
||||
close (SFD);
|
||||
return ();
|
||||
}
|
||||
|
||||
my(@planes) = ();
|
||||
|
||||
while (<SFD>) {
|
||||
|
||||
if ( ! ($ARG =~ /^[[:space:]]*\#/)) { # skip comment lines
|
||||
|
||||
# handle plane numbers:
|
||||
if ( $ARG =~ /^([[:xdigit:]]{2})[[:space:]]*/ ) {
|
||||
$ARG =~ s/^([[:xdigit:]]{2})[[:space:]]*/ /;
|
||||
print MAP "plane $1\n";
|
||||
print MAP "at 0x00\n";
|
||||
$planes[$#planes + 1] = $1;
|
||||
}
|
||||
|
||||
# remove continuation chars '\':
|
||||
$ARG =~ s/\\$//;
|
||||
|
||||
$ARG =~ s/(0x[[:xdigit:]]{1,4})/$1,/g;
|
||||
# handle ranges like 0xF800_0xF8FF
|
||||
$ARG =~ s/(0x[[:xdigit:]]{1,4}),_/$1-/g;
|
||||
}
|
||||
|
||||
print MAP $ARG;
|
||||
|
||||
}
|
||||
|
||||
close (MAP);
|
||||
close (SFD);
|
||||
return @planes;
|
||||
}
|
||||
|
||||
|
||||
# Returns true if the modification time of $f1 differs from
|
||||
# the modification time of $f2
|
||||
sub mtime_differs {
|
||||
my($f1,$f2) = @_;
|
||||
if( -e $f1 && -e $f2) {
|
||||
local (@f1s) = stat ($f1);
|
||||
local (@f2s) = stat ($f2);
|
||||
return ($f1s[9] != $f2s[9]);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
# Returns true if the modification time of $f1 differs from
|
||||
# the modification time of $f2 or if one of the files is missing
|
||||
sub mtime_differs_or_missing {
|
||||
my($f1,$f2) = @_;
|
||||
if (! -e $f1 || ! -e $f2 || mtime_differs($f1,$f2)) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
# Returns true if $f1 is newer than $f2
|
||||
sub newer {
|
||||
my($f1,$f2) = @_;
|
||||
if( -e $f1 && -e $f2) {
|
||||
local (@f1s) = stat ($f1);
|
||||
local (@f2s) = stat ($f2);
|
||||
return ($f1s[9] > $f2s[9]);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
# Returns true if $f1 is newer than $f2 or if one of the files is missing
|
||||
sub newer_or_missing {
|
||||
my($f1,$f2) = @_;
|
||||
if (! -e $f1 || ! -e $f2 || newer($f1,$f2)) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
60
pdf/lib/ttf2ufm/src/app/TeX/cjk-latex-t1mapgen
Executable file
60
pdf/lib/ttf2ufm/src/app/TeX/cjk-latex-t1mapgen
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# Author: Mike Fabian <mfabian@suse.de>, 2002
|
||||
#
|
||||
|
||||
TYPE1_DIR=$1
|
||||
if [ -z $TYPE1_DIR ] ; then
|
||||
TYPE1_DIR=/usr/share/texmf/fonts/type1/cjk-latex/
|
||||
fi
|
||||
|
||||
CJK_LATEX_TYPE1_MAP_FILE=/var/lib/texmf/dvips/config/cjk-latex.map
|
||||
|
||||
echo "creating $CJK_LATEX_TYPE1_MAP_FILE ..."
|
||||
|
||||
TMPFILE=`mktemp /tmp/cjk-latex-t1mapgen.XXXXXX`
|
||||
|
||||
if [ -d $TYPE1_DIR ] ; then
|
||||
for FILE in $( find $TYPE1_DIR -name "*.pfb" )
|
||||
do
|
||||
BASENAME_WITHOUT_EXT=$( basename $FILE )
|
||||
BASENAME_WITHOUT_EXT=${BASENAME_WITHOUT_EXT%.pfb}
|
||||
FONT_NAME=$( grep -a "/FontName.*def" ${FILE} | perl -pe "s%/FontName /([^ ]+) def%\1%" )
|
||||
echo "${BASENAME_WITHOUT_EXT} ${FONT_NAME} <${BASENAME_WITHOUT_EXT}.pfb" >> $TMPFILE
|
||||
done
|
||||
fi
|
||||
|
||||
mv $TMPFILE $CJK_LATEX_TYPE1_MAP_FILE
|
||||
chmod 644 $CJK_LATEX_TYPE1_MAP_FILE
|
||||
|
||||
# add entries for PostScript font map files used by CJK-LaTeX
|
||||
# to 'pdftex.cfg' and 'config.ps':
|
||||
|
||||
PDFTEX_CFG=/var/lib/texmf/pdftex/config/pdftex.cfg
|
||||
CONFIG_PS=/var/lib/texmf/dvips/config/config.ps
|
||||
|
||||
for MAP in cjk-latex.map
|
||||
do
|
||||
if [ -f /var/lib/texmf/dvips/config/$MAP ] ; then
|
||||
egrep "^p \+$MAP" $CONFIG_PS > /dev/null
|
||||
if [ $? = 1 ] ; then
|
||||
echo "p +$MAP" >> $CONFIG_PS
|
||||
fi
|
||||
egrep "^map \+$MAP" $PDFTEX_CFG > /dev/null
|
||||
if [ $? = 1 ] ; then
|
||||
echo "map +$MAP" >> $PDFTEX_CFG
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# pdflatex seems to prefer pk fonts if they exist. That seems strange
|
||||
# but I couldn't find out how to change this.
|
||||
# Deleting all the pk fonts from /var/cache/fonts/pk/* is probably a bit overkill
|
||||
# but it helps. 'dvips' will regenerate the pk fonts as needed but will not
|
||||
# regenerate pk fonts for the pfb fonts listed in the map file generated above.
|
||||
# Therefore, deleting /var/cache/fonts/pk/* makes sure that all available pfb
|
||||
# fonts are used:
|
||||
|
||||
rm -rf /var/cache/fonts/pk/*
|
||||
68
pdf/lib/ttf2ufm/src/app/TeX/sfd2map
Executable file
68
pdf/lib/ttf2ufm/src/app/TeX/sfd2map
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Copyright (c) 2002 Mike Fabian <mike.fabian@gmx.de>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
|
||||
use English;
|
||||
use Getopt::Long;
|
||||
|
||||
sub usage {
|
||||
print "Usage: sfd2map [-debug|d]\n\n";
|
||||
print "Converts a .sfd files in the format used by ttf2pk and ttf2tfm\n";
|
||||
print "into .map files in the format expected by ttf2pt1. For example:\n\n";
|
||||
print " sfd2map < UJIS.sfd > UJIS.map \n\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# Process command line options
|
||||
my %opt;
|
||||
unless (GetOptions(\%opt,
|
||||
'-debug|d' , \$OPT_DEBUG
|
||||
)) {
|
||||
&usage();
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if($OPT_DEBUG) {
|
||||
}
|
||||
|
||||
open (MAP, ">&STDOUT");
|
||||
open (SFD, "<&STDIN");
|
||||
|
||||
print MAP "# generated from a .sfd file by sfd2map to make it usable with ttf2pt1\n";
|
||||
print MAP "#\n";
|
||||
|
||||
while (<SFD>) {
|
||||
|
||||
if ( ! ($ARG =~ /^[[:space:]]*\#/)) { # skip comment lines
|
||||
|
||||
# handle plane numbers:
|
||||
if ( $ARG =~ /^([[:xdigit:]]{2})[[:space:]]*/ ) {
|
||||
$ARG =~ s/^([[:xdigit:]]{2})[[:space:]]*/ /;
|
||||
print MAP "plane $1\n";
|
||||
print MAP "at 0x00\n";
|
||||
}
|
||||
|
||||
# remove continuation chars '\':
|
||||
$ARG =~ s/\\$//;
|
||||
|
||||
$ARG =~ s/(0x[[:xdigit:]]{1,4})/$1,/g;
|
||||
# handle ranges like 0xF800_0xF8FF
|
||||
$ARG =~ s/(0x[[:xdigit:]]{1,4}),_/$1-/g;
|
||||
|
||||
}
|
||||
|
||||
print MAP $ARG;
|
||||
|
||||
}
|
||||
|
||||
|
||||
24
pdf/lib/ttf2ufm/src/app/X11/README
Executable file
24
pdf/lib/ttf2ufm/src/app/X11/README
Executable file
@@ -0,0 +1,24 @@
|
||||
Recommended patches for the X11 font library
|
||||
|
||||
by Sergey Babkin
|
||||
<babkin@bellatlantic.net>, <sab123@hotmail.com>
|
||||
|
||||
These are patches for XFree86 versions 3.3.4 and 3.9
|
||||
to fix a few known problems with big Type1 fonts and
|
||||
with strange handling of the standard stem width table.
|
||||
The patch for XFree86 3.3.4 probably may be easily
|
||||
installed on any other distribution of X11.
|
||||
They are supposed to be installed in the subdirectory
|
||||
|
||||
xc/lib/font/Type1
|
||||
|
||||
of the X11 source tree and after that the font library,
|
||||
font server and X server should be rebuilt.
|
||||
|
||||
Sorry that the description has so little details but if
|
||||
you know how to build X11 then this is enough, otherwise
|
||||
any more details won't help much.
|
||||
|
||||
The patches have been submitted to the XFree86 project,
|
||||
hope they will be included in some next release of XFree86
|
||||
and X11.
|
||||
41
pdf/lib/ttf2ufm/src/app/X11/README.html
Executable file
41
pdf/lib/ttf2ufm/src/app/X11/README.html
Executable file
@@ -0,0 +1,41 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Recommended patches for the X11 font library
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
Recommended patches for the X11 font library
|
||||
</H2>
|
||||
|
||||
by Sergey Babkin
|
||||
<babkin@bellatlantic.net>, <sab123@hotmail.com>
|
||||
<p>
|
||||
|
||||
These are patches for XFree86 versions 3.3.4 and 3.9
|
||||
to fix a few known problems with big Type1 fonts and
|
||||
with strange handling of the standard stem width table.
|
||||
The patch for XFree86 3.3.4 probably may be easily
|
||||
installed on any other distribution of X11.
|
||||
They are supposed to be installed in the subdirectory
|
||||
<br>
|
||||
|
||||
<tt>xc/lib/font/Type1</tt>
|
||||
<br>
|
||||
|
||||
of the X11 source tree and after that the font library,
|
||||
font server and X server should be rebuilt.
|
||||
<p>
|
||||
|
||||
Sorry that the description has so little details but if
|
||||
you know how to build X11 then this is enough, otherwise
|
||||
any more details won't help much.
|
||||
<p>
|
||||
|
||||
The patches have been submitted to the XFree86 project,
|
||||
hope they will be included in some next release of XFree86
|
||||
and X11.
|
||||
<p>
|
||||
</BODY>
|
||||
</HTML>
|
||||
199
pdf/lib/ttf2ufm/src/app/X11/t1-xf86.334.patch
Executable file
199
pdf/lib/ttf2ufm/src/app/X11/t1-xf86.334.patch
Executable file
@@ -0,0 +1,199 @@
|
||||
*** fontfcn.c 2000/01/02 18:55:56 1.1
|
||||
--- fontfcn.c 2000/01/02 19:00:17
|
||||
***************
|
||||
*** 33,38 ****
|
||||
--- 33,39 ----
|
||||
#include <string.h>
|
||||
#include "t1imager.h"
|
||||
#include "util.h"
|
||||
+ #include "t1stdio.h"
|
||||
#include "fontfcn.h"
|
||||
#include "fontmisc.h"
|
||||
|
||||
***************
|
||||
*** 117,132 ****
|
||||
resetFont(env);
|
||||
/* This will load the font into the FontP */
|
||||
rcode = scan_font(FontP);
|
||||
! if (rcode == SCAN_OUT_OF_MEMORY) {
|
||||
/* free the memory and start again */
|
||||
xfree(vm_base);
|
||||
if (!(initFont(vm_size * 2))) {
|
||||
/* we are really out of memory */
|
||||
return(SCAN_OUT_OF_MEMORY);
|
||||
}
|
||||
resetFont(env);
|
||||
rcode = scan_font(FontP);
|
||||
- /* only double the memory once, then report error */
|
||||
}
|
||||
return(rcode);
|
||||
}
|
||||
--- 118,151 ----
|
||||
resetFont(env);
|
||||
/* This will load the font into the FontP */
|
||||
rcode = scan_font(FontP);
|
||||
! if (rcode != SCAN_OUT_OF_MEMORY)
|
||||
! return rcode;
|
||||
!
|
||||
! if (T1FileSize > VM_SIZE) {
|
||||
! /* use the file size as estimation */
|
||||
!
|
||||
/* free the memory and start again */
|
||||
xfree(vm_base);
|
||||
+ if (!(initFont(T1FileSize))) {
|
||||
+ /* we are really out of memory */
|
||||
+ return(SCAN_OUT_OF_MEMORY);
|
||||
+ }
|
||||
+ resetFont(env);
|
||||
+ rcode = scan_font(FontP);
|
||||
+ if (rcode != SCAN_OUT_OF_MEMORY)
|
||||
+ return rcode;
|
||||
+ }
|
||||
+
|
||||
+ /* if still not enough, increase up to maximum */
|
||||
+ while (rcode == SCAN_OUT_OF_MEMORY
|
||||
+ && vm_size <= VM_SIZE_MAX/2 ) {
|
||||
+ xfree(vm_base);
|
||||
if (!(initFont(vm_size * 2))) {
|
||||
/* we are really out of memory */
|
||||
return(SCAN_OUT_OF_MEMORY);
|
||||
}
|
||||
resetFont(env);
|
||||
rcode = scan_font(FontP);
|
||||
}
|
||||
return(rcode);
|
||||
}
|
||||
*** paths.c 2000/01/02 18:55:56 1.1
|
||||
--- paths.c 2000/01/02 18:56:27
|
||||
***************
|
||||
*** 584,590 ****
|
||||
CONCAT(before, r);
|
||||
r = before;
|
||||
}
|
||||
! else
|
||||
r->context = after->context;
|
||||
if (after != NULL)
|
||||
CONCAT(r, after);
|
||||
--- 584,590 ----
|
||||
CONCAT(before, r);
|
||||
r = before;
|
||||
}
|
||||
! else if (after != NULL)
|
||||
r->context = after->context;
|
||||
if (after != NULL)
|
||||
CONCAT(r, after);
|
||||
*** scanfont.c 2000/01/02 18:55:56 1.1
|
||||
--- scanfont.c 2000/01/02 18:56:26
|
||||
***************
|
||||
*** 1383,1388 ****
|
||||
--- 1383,1390 ----
|
||||
/* point to name and search for leading blanks */
|
||||
nameP= FontP->FontFileName.data.nameP;
|
||||
namelen = FontP->FontFileName.len;
|
||||
+ if (namelen > (128-1) ) /* prevent getting out of filename[] */
|
||||
+ namelen = (128-1);
|
||||
while (nameP[0] == ' ') {
|
||||
nameP++;
|
||||
namelen--;
|
||||
*** t1io.c 2000/01/02 18:55:56 1.1
|
||||
--- t1io.c 2000/01/02 18:56:32
|
||||
***************
|
||||
*** 54,59 ****
|
||||
--- 54,62 ----
|
||||
/* Our single FILE structure and buffer for this package */
|
||||
STATIC F_FILE TheFile;
|
||||
STATIC unsigned char TheBuffer[F_BUFSIZ];
|
||||
+
|
||||
+ /* the size of the file we read */
|
||||
+ int T1FileSize;
|
||||
|
||||
/* Our routines */
|
||||
F_FILE *T1Open(), *T1Eexec();
|
||||
***************
|
||||
*** 87,92 ****
|
||||
--- 90,96 ----
|
||||
of->flags = 0;
|
||||
of->error = 0;
|
||||
haveextrach = 0;
|
||||
+ T1FileSize = 0;
|
||||
return &TheFile;
|
||||
} /* end Open */
|
||||
|
||||
***************
|
||||
*** 165,171 ****
|
||||
--- 169,181 ----
|
||||
int T1Close(f) /* Close the file */
|
||||
F_FILE *f; /* Stream descriptor */
|
||||
{
|
||||
+ int rc;
|
||||
+
|
||||
if (f->b_base == NULL) return 0; /* already closed */
|
||||
+
|
||||
+ while ( (rc = read(f->fd, f->b_base, F_BUFSIZ)) >0)
|
||||
+ T1FileSize += rc; /* count the rest of the file */
|
||||
+
|
||||
f->b_base = NULL; /* no valid stream */
|
||||
return close(f->fd);
|
||||
} /* end Close */
|
||||
***************
|
||||
*** 289,294 ****
|
||||
--- 299,305 ----
|
||||
}
|
||||
}
|
||||
f->b_ptr = f->b_base;
|
||||
+ T1FileSize += rc; /* remember how many bytes we have */
|
||||
if (Decrypt) rc = T1Decrypt(f->b_base, rc);
|
||||
return rc;
|
||||
} /* end Fill */
|
||||
*** type1.c 2000/01/02 18:55:56 1.1
|
||||
--- type1.c 2000/01/02 18:56:27
|
||||
***************
|
||||
*** 365,378 ****
|
||||
/* ADJUST STEM WIDTHS */
|
||||
/**********************/
|
||||
|
||||
! widthdiff = 0.0;
|
||||
|
||||
/* Find standard stem with smallest width difference from this stem */
|
||||
if (stems[stemno].vertical) { /* vertical stem */
|
||||
if (blues->StdVW != 0) /* there is an entry for StdVW */
|
||||
widthdiff = blues->StdVW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */
|
||||
! if (blues->StemSnapV[i] - stemwidth < widthdiff)
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapV[i] - stemwidth;
|
||||
}
|
||||
--- 365,380 ----
|
||||
/* ADJUST STEM WIDTHS */
|
||||
/**********************/
|
||||
|
||||
! /* a big value to not compete with StemSnap */
|
||||
! /* if there is no StemSnap it will be caught later */
|
||||
! widthdiff = onepixel*2;
|
||||
|
||||
/* Find standard stem with smallest width difference from this stem */
|
||||
if (stems[stemno].vertical) { /* vertical stem */
|
||||
if (blues->StdVW != 0) /* there is an entry for StdVW */
|
||||
widthdiff = blues->StdVW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */
|
||||
! if ( FABS(blues->StemSnapV[i] - stemwidth) < FABS(widthdiff) )
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapV[i] - stemwidth;
|
||||
}
|
||||
***************
|
||||
*** 380,386 ****
|
||||
if (blues->StdHW != 0) /* there is an entry for StdHW */
|
||||
widthdiff = blues->StdHW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */
|
||||
! if (blues->StemSnapH[i] - stemwidth < widthdiff)
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapH[i] - stemwidth;
|
||||
}
|
||||
--- 382,388 ----
|
||||
if (blues->StdHW != 0) /* there is an entry for StdHW */
|
||||
widthdiff = blues->StdHW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */
|
||||
! if ( FABS(blues->StemSnapH[i] - stemwidth) < FABS(widthdiff) )
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapH[i] - stemwidth;
|
||||
}
|
||||
252
pdf/lib/ttf2ufm/src/app/X11/t1-xf86.39.patch
Executable file
252
pdf/lib/ttf2ufm/src/app/X11/t1-xf86.39.patch
Executable file
@@ -0,0 +1,252 @@
|
||||
*** scanfont.c 1999/12/27 00:34:02 1.1
|
||||
--- scanfont.c 1999/12/27 00:35:34
|
||||
***************
|
||||
*** 2234,2239 ****
|
||||
--- 2234,2241 ----
|
||||
/* point to name and search for leading blanks */
|
||||
nameP= FontP->FontFileName.data.nameP;
|
||||
namelen = FontP->FontFileName.len;
|
||||
+ if (namelen > (128-1) ) /* prevent getting out of filename[] */
|
||||
+ namelen = (128-1);
|
||||
while (nameP[0] == ' ') {
|
||||
nameP++;
|
||||
namelen--;
|
||||
*** paths.c 1999/12/27 00:37:01 1.1
|
||||
--- paths.c 1999/12/27 00:37:43
|
||||
***************
|
||||
*** 583,589 ****
|
||||
CONCAT(before, r);
|
||||
r = before;
|
||||
}
|
||||
! else
|
||||
r->context = after->context;
|
||||
if (after != NULL)
|
||||
CONCAT(r, after);
|
||||
--- 583,589 ----
|
||||
CONCAT(before, r);
|
||||
r = before;
|
||||
}
|
||||
! else if (after != NULL)
|
||||
r->context = after->context;
|
||||
if (after != NULL)
|
||||
CONCAT(r, after);
|
||||
*** type1.c 1999/12/27 00:38:16 1.1
|
||||
--- type1.c 1999/12/27 01:08:02
|
||||
***************
|
||||
*** 399,412 ****
|
||||
/* ADJUST STEM WIDTHS */
|
||||
/**********************/
|
||||
|
||||
! widthdiff = 0.0;
|
||||
|
||||
/* Find standard stem with smallest width difference from this stem */
|
||||
if (stems[stemno].vertical) { /* vertical stem */
|
||||
if (blues->StdVW != 0) /* there is an entry for StdVW */
|
||||
widthdiff = blues->StdVW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */
|
||||
! if (blues->StemSnapV[i] - stemwidth < widthdiff)
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapV[i] - stemwidth;
|
||||
}
|
||||
--- 399,414 ----
|
||||
/* ADJUST STEM WIDTHS */
|
||||
/**********************/
|
||||
|
||||
! /* a big value to not compete with StemSnap */
|
||||
! /* if there is no StemSnap it will be caught later */
|
||||
! widthdiff = onepixel*2;
|
||||
|
||||
/* Find standard stem with smallest width difference from this stem */
|
||||
if (stems[stemno].vertical) { /* vertical stem */
|
||||
if (blues->StdVW != 0) /* there is an entry for StdVW */
|
||||
widthdiff = blues->StdVW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */
|
||||
! if ( FABS(blues->StemSnapV[i] - stemwidth) < FABS(widthdiff) )
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapV[i] - stemwidth;
|
||||
}
|
||||
***************
|
||||
*** 414,420 ****
|
||||
if (blues->StdHW != 0) /* there is an entry for StdHW */
|
||||
widthdiff = blues->StdHW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */
|
||||
! if (blues->StemSnapH[i] - stemwidth < widthdiff)
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapH[i] - stemwidth;
|
||||
}
|
||||
--- 416,422 ----
|
||||
if (blues->StdHW != 0) /* there is an entry for StdHW */
|
||||
widthdiff = blues->StdHW - stemwidth;
|
||||
for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */
|
||||
! if ( FABS(blues->StemSnapH[i] - stemwidth) < FABS(widthdiff) )
|
||||
/* this standard width is the best match so far for this stem */
|
||||
widthdiff = blues->StemSnapH[i] - stemwidth;
|
||||
}
|
||||
*** t1io.c 2000/01/01 00:41:44 1.1
|
||||
--- t1io.c 2000/01/01 01:23:38
|
||||
***************
|
||||
*** 78,83 ****
|
||||
--- 78,86 ----
|
||||
/* Our single FILE structure and buffer for this package */
|
||||
STATIC F_FILE TheFile;
|
||||
STATIC unsigned char TheBuffer[F_BUFSIZ];
|
||||
+
|
||||
+ /* the size of the file we read */
|
||||
+ int T1FileSize;
|
||||
|
||||
/* Our routines */
|
||||
F_FILE *T1Open(), *T1Eexec();
|
||||
***************
|
||||
*** 118,123 ****
|
||||
--- 121,127 ----
|
||||
of->flags = 0;
|
||||
of->error = 0;
|
||||
haveextrach = 0;
|
||||
+ T1FileSize = 0;
|
||||
return &TheFile;
|
||||
} /* end Open */
|
||||
|
||||
***************
|
||||
*** 196,202 ****
|
||||
--- 200,212 ----
|
||||
int T1Close(f) /* Close the file */
|
||||
F_FILE *f; /* Stream descriptor */
|
||||
{
|
||||
+ int rc;
|
||||
+
|
||||
if (f->b_base == NULL) return 0; /* already closed */
|
||||
+
|
||||
+ while ( (rc = read(f->fd, f->b_base, F_BUFSIZ)) >0)
|
||||
+ T1FileSize += rc; /* count the rest of the file */
|
||||
+
|
||||
f->b_base = NULL; /* no valid stream */
|
||||
return close(f->fd);
|
||||
} /* end Close */
|
||||
***************
|
||||
*** 381,386 ****
|
||||
--- 391,397 ----
|
||||
}
|
||||
}
|
||||
f->b_ptr = f->b_base;
|
||||
+ T1FileSize += rc; /* remember how many bytes we have */
|
||||
if (Decrypt) rc = T1Decrypt(f->b_base, rc);
|
||||
return rc;
|
||||
} /* end Fill */
|
||||
*** t1stdio.h 2000/01/01 00:43:38 1.1
|
||||
--- t1stdio.h 2000/01/01 01:24:19
|
||||
***************
|
||||
*** 73,78 ****
|
||||
--- 73,79 ----
|
||||
|
||||
extern FILE *T1Open(), *T1eexec();
|
||||
extern int T1Close(), T1Ungetc(), T1Read();
|
||||
+ extern int T1FileSize;
|
||||
|
||||
#undef fclose
|
||||
#undef fopen
|
||||
*** fontfcn.c 2000/01/01 00:07:54 1.1
|
||||
--- fontfcn.c 2000/01/01 01:36:02
|
||||
***************
|
||||
*** 57,62 ****
|
||||
--- 57,63 ----
|
||||
#endif
|
||||
#include "t1imager.h"
|
||||
#include "util.h"
|
||||
+ #include "t1stdio.h"
|
||||
#ifdef BUILDCID
|
||||
#include "range.h"
|
||||
#include "fontmisc.h"
|
||||
***************
|
||||
*** 300,333 ****
|
||||
resetFont(env);
|
||||
/* This will load the font into the FontP */
|
||||
rcode = scan_font(FontP);
|
||||
! if (rcode == SCAN_OUT_OF_MEMORY) {
|
||||
/* free the memory and start again */
|
||||
#ifdef BUILDCID
|
||||
/* xfree(vm_base); */
|
||||
#else
|
||||
xfree(vm_base);
|
||||
#endif
|
||||
if (!(initFont(vm_size * 2))) {
|
||||
/* we are really out of memory */
|
||||
return(SCAN_OUT_OF_MEMORY);
|
||||
}
|
||||
resetFont(env);
|
||||
rcode = scan_font(FontP);
|
||||
- #ifdef BUILDCID
|
||||
- /* only double the memory twice, then report error */
|
||||
- if (rcode == SCAN_OUT_OF_MEMORY) {
|
||||
- /* free the memory and start again */
|
||||
- /* xfree(vm_base) */
|
||||
- if (!(initFont(vm_size * 2))) {
|
||||
- /* we are really out of memory */
|
||||
- return(SCAN_OUT_OF_MEMORY);
|
||||
- }
|
||||
- resetFont(env);
|
||||
- rcode = scan_font(FontP);
|
||||
- }
|
||||
- #else
|
||||
- /* only double the memory once, then report error */
|
||||
- #endif
|
||||
}
|
||||
return(rcode);
|
||||
}
|
||||
--- 301,342 ----
|
||||
resetFont(env);
|
||||
/* This will load the font into the FontP */
|
||||
rcode = scan_font(FontP);
|
||||
! if (rcode != SCAN_OUT_OF_MEMORY)
|
||||
! return rcode;
|
||||
!
|
||||
! if (T1FileSize > VM_SIZE) {
|
||||
! /* use the file size as estimation */
|
||||
!
|
||||
/* free the memory and start again */
|
||||
#ifdef BUILDCID
|
||||
/* xfree(vm_base); */
|
||||
#else
|
||||
xfree(vm_base);
|
||||
#endif
|
||||
+ if (!(initFont(T1FileSize))) {
|
||||
+ /* we are really out of memory */
|
||||
+ return(SCAN_OUT_OF_MEMORY);
|
||||
+ }
|
||||
+ resetFont(env);
|
||||
+ rcode = scan_font(FontP);
|
||||
+ if (rcode != SCAN_OUT_OF_MEMORY)
|
||||
+ return rcode;
|
||||
+ }
|
||||
+
|
||||
+ /* if still not enough, increase up to maximum */
|
||||
+ while (rcode == SCAN_OUT_OF_MEMORY
|
||||
+ && vm_size <= VM_SIZE_MAX/2 ) {
|
||||
+ #ifdef BUILDCID
|
||||
+ /* xfree(vm_base); */
|
||||
+ #else
|
||||
+ xfree(vm_base);
|
||||
+ #endif
|
||||
if (!(initFont(vm_size * 2))) {
|
||||
/* we are really out of memory */
|
||||
return(SCAN_OUT_OF_MEMORY);
|
||||
}
|
||||
resetFont(env);
|
||||
rcode = scan_font(FontP);
|
||||
}
|
||||
return(rcode);
|
||||
}
|
||||
*** util.h 2000/01/01 00:40:11 1.1
|
||||
--- util.h 2000/01/01 01:29:18
|
||||
***************
|
||||
*** 83,88 ****
|
||||
--- 83,92 ----
|
||||
#else
|
||||
#define VM_SIZE (50*1024)
|
||||
#endif
|
||||
+
|
||||
+ /* this is the maximal permitted memory size */
|
||||
+ #define VM_SIZE_MAX (1024*1024)
|
||||
+
|
||||
/***================================================================***/
|
||||
|
||||
#ifndef MIN
|
||||
5
pdf/lib/ttf2ufm/src/app/netscape/Makefile
Executable file
5
pdf/lib/ttf2ufm/src/app/netscape/Makefile
Executable file
@@ -0,0 +1,5 @@
|
||||
nsfix: nsfix.c
|
||||
$(CC) $(CFLAGS) -o nsfix nsfix.c $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f *.o core *.core core.* nsfix
|
||||
180
pdf/lib/ttf2ufm/src/app/netscape/README
Executable file
180
pdf/lib/ttf2ufm/src/app/netscape/README
Executable file
@@ -0,0 +1,180 @@
|
||||
Installing the fonts in Netscape Navigator
|
||||
|
||||
by Sergey Babkin
|
||||
<babkin@bellatlantic.net>, <sab123@hotmail.com>
|
||||
|
||||
This is a collection of supplements to Netscape 4.x on
|
||||
Unix. Probably they will also work with Netscape 3.x,
|
||||
possilby with minor modifications.
|
||||
|
||||
Makefile
|
||||
nsfix.c
|
||||
psfonts.cf
|
||||
|
||||
This is a program that allows to substitute the font metrics
|
||||
of any PostScript font in Netscape.
|
||||
|
||||
When Netscape prints the files to PostScript format it uses a
|
||||
built-in table of character widths. It prints all the fixed-width
|
||||
characters in the typeface "Courier" and all the variable-width
|
||||
characters in the typeface "Times". And if the PostScript printer
|
||||
has these fonts by Adobe then everything goes fine because
|
||||
the tables inside Netscape are generated from the Adobe fonts.
|
||||
But if the fonts are different (say, those supplied with Ghostscripts
|
||||
or the fonts with non-latin characters) then the result is quite
|
||||
ugly. This program allows to replace the width tables inside
|
||||
the Netscape executable with the tables for any given font.
|
||||
The only problem is that Netscape can hold only one set of tables
|
||||
at once. So if you want to print with different fonts (say,
|
||||
for different languages or encodings) you will have to make
|
||||
multiple copies of the executable, tune each of them for its
|
||||
font and then run them separately.
|
||||
|
||||
I tried to make the program as machine-independent as possible.
|
||||
But because it patches the binary files it still has the dependencies
|
||||
on hardware. The default version as supplied was designed for
|
||||
Intel x86 machines but it should work OK on any machine
|
||||
with 32-bit CPU and 4Kbyte (or less) page size. If it can't
|
||||
find the tables matching the font names on some other architecture
|
||||
the first thing to try would be reduce the `PAGEBITS' definition
|
||||
in the source code. On the machines with non-page-aligned structure
|
||||
of executables it won't work at all. I don't know whether would
|
||||
it work on the 64-bit machines. This may depend on whether the
|
||||
Netscape executable was compiled in 32-bit or 64-bit mode. For
|
||||
the 64-bit executables it may be neccessary to change the definition
|
||||
of the type `tptr' to an 8-byte integer type (probably `long'
|
||||
or `long long'). Also must be re-compiled for patching of the
|
||||
Netscape binary for each particular machine architecture because
|
||||
it assumes the byte order of the current machine.
|
||||
|
||||
It might be possible to create a program that would patch
|
||||
a running Netscape binary on the fly, that would allow
|
||||
changing the printing fonts as neccessary when Netscape is
|
||||
running. But this would be even more platform-dependent,
|
||||
so I don't feel any enthusiasm about doing that.
|
||||
|
||||
I have tested the program on the Intel machines, Netscape
|
||||
4.08 and 4.7, OS FreeBSD (both a.out and ELF formats of the
|
||||
Netscape binary) and UnixWare.
|
||||
|
||||
After all these scary issues are resolved the compiling
|
||||
is easy: just run `make'.
|
||||
|
||||
To command to patch the Netscape is:
|
||||
./nsfix <netscape-binary> <config-file>
|
||||
|
||||
Please make a copy of the original Netscape binary before
|
||||
patching in case anything goes wrong. Patch the copy, test
|
||||
that it works OK and only then install it. The configuration
|
||||
file describes the fonts that are to be used. An example
|
||||
is provided in the file psfonts.cf.
|
||||
|
||||
Each line in the configuration file consists of 4
|
||||
columns:
|
||||
|
||||
<PS_font_name> <font_base_file> <suffix_afm> <suffix_font>
|
||||
|
||||
For example, the following line from my configuration file:
|
||||
|
||||
Courier /usr/lib/X11/fonts/ttf/cokoi8n.koi8-r .afm .pfa
|
||||
|
||||
says that the font `Courier' will be replaced with the
|
||||
font taken from the file `/usr/lib/X11/fonts/ttf/cokoi8n.koi8-r.pfa'
|
||||
and the metrics for that font will be taken from the file
|
||||
`/usr/lib/X11/fonts/ttf/cokoi8n.koi8-r.afm' .
|
||||
|
||||
One more caveat: the new font must have a proper encoding
|
||||
table. Some fonts contain characters for multiple encodings
|
||||
hoping that the program wil re-encode them as neccessary.
|
||||
This won't work in this case, only the primary encoding table
|
||||
of the font will be used.
|
||||
|
||||
nsfilter
|
||||
nsprint
|
||||
psfonts.cf
|
||||
|
||||
These are the filters for printing from Netscape.
|
||||
|
||||
Changing the metrics is not the end of the story. This will
|
||||
provide proper placement of the characters but not the
|
||||
characters themselves. There are a few ways to provide
|
||||
the characters:
|
||||
|
||||
First, if you use GhostScript you may configure proper
|
||||
aliases in the GhostScript configuration file. We will
|
||||
consider this variant trivial and won't discuss it furter
|
||||
except for one caveat: Netscape tries to re-encode the
|
||||
fonts per the ISO Latin-1 encoding. If the primary encoding
|
||||
of the font is different this cause unexpected effects.
|
||||
So you still may consider using the filters (at least in a
|
||||
simplified form) to solve this problem.
|
||||
|
||||
Second, load the fonts right into your printer. This is
|
||||
very much like configuring GhostScript.
|
||||
|
||||
Third, use the provided filters. The script `nsfilter'
|
||||
reads the output of Netscape on its standard input and
|
||||
puts the result to its standard output. It uses the same
|
||||
configuration file `psfonts.cf' as `nsfix'. First it
|
||||
looks for the configuration file in the user's home
|
||||
directory ($HOME/.netscape/psfonts.cf) and if the
|
||||
file it not there then the second guess is the system-wide
|
||||
configuration file /usr/local/etc/psfonts.cf. The
|
||||
script inserts the fonts into the output and also
|
||||
removes the Netscape's experiments with the encodings.
|
||||
|
||||
`nsfilter' is generally intended to be ran by user, not by the
|
||||
printing subsystem. The reason is that the user may have
|
||||
changed fonts in his Netscape and the printing subsystem
|
||||
would have no way to access user's configuration file.
|
||||
But if all the users are using the same fonts then it
|
||||
may be incorporated into the printing subsystem and use
|
||||
the system-wide configuration file.
|
||||
|
||||
The script `nsprint' is purely for convenience, to type it
|
||||
as a printing command in the Netscape printing window.
|
||||
It just pipelines the data through `nsfilter' to the
|
||||
printing program which also gets all the arguments. Please
|
||||
note that the SystemV-style and BSD-style systems use different
|
||||
printing programs (although they commonly provide compatibility
|
||||
with the other style too). The script tries to guess the
|
||||
type of system and use its native print program, `lp' or
|
||||
`lpr'. But in case it guesses wrong you may want
|
||||
to change this in the script. Also if the printer does not support
|
||||
PostScript directly this script may be a good place to
|
||||
insert a call to GhostScript.
|
||||
|
||||
notscape
|
||||
fontsz.cf
|
||||
|
||||
Netscape on Unix has a very annoying "feature", it does
|
||||
not remember the desired base size of the scalable screen
|
||||
fonts and always resets it to 12.0 points. Even if the size
|
||||
is changed manually in its preferences file, Netscape
|
||||
forgets it after it exits.
|
||||
|
||||
So my solution was to write a program which would change
|
||||
the size to my favorite one every time right before
|
||||
starting Netscape. `notscape' is exactly such a program,
|
||||
it sets the font sizes an then transparently executes
|
||||
netscape. It takes the font sizes from the file
|
||||
`$HOME/.netscape/fontsz.cf' . An example of such file
|
||||
is provided. The format of the file is quite self-explanatory,
|
||||
for example the lines
|
||||
|
||||
fixed-koi8-r 140
|
||||
prop-koi8-r 150
|
||||
|
||||
mean "set the size of the fixed-width screen font in the
|
||||
encoding koi8-r to 14.0 points; set the size of the proportional
|
||||
(variable-width) font in the encoding koi8-r to 15.0 points".
|
||||
|
||||
|
||||
nspr
|
||||
by Zvezdan Petkovic
|
||||
|
||||
To print from Netscape, I usually print to the Postscript file first.
|
||||
Then I use this small script to change the names of Times and Courier fonts
|
||||
in the file and remove `/Encoding' lines. After that the file can be
|
||||
sent to printer.
|
||||
|
||||
242
pdf/lib/ttf2ufm/src/app/netscape/README.html
Executable file
242
pdf/lib/ttf2ufm/src/app/netscape/README.html
Executable file
@@ -0,0 +1,242 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Installing the fonts in Netscape Navigator
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
Installing the fonts in Netscape Navigator
|
||||
</H2>
|
||||
|
||||
<tt>
|
||||
by Sergey Babkin
|
||||
<babkin@bellatlantic.net>, <sab123@hotmail.com>
|
||||
</tt>
|
||||
<p>
|
||||
|
||||
This is a collection of supplements to Netscape 4.x on
|
||||
Unix. Probably they will also work with Netscape 3.x,
|
||||
possilby with minor modifications.
|
||||
<p>
|
||||
|
||||
<h4><tt>
|
||||
Makefile<br>
|
||||
nsfix.c<br>
|
||||
psfonts.cf
|
||||
</tt></h4>
|
||||
<p>
|
||||
|
||||
This is a program that allows to substitute the font metrics
|
||||
of any PostScript font in Netscape.
|
||||
<p>
|
||||
|
||||
When Netscape prints the files to PostScript format it uses a
|
||||
built-in table of character widths. It prints all the fixed-width
|
||||
characters in the typeface "Courier" and all the variable-width
|
||||
characters in the typeface "Times". And if the PostScript printer
|
||||
has these fonts by Adobe then everything goes fine because
|
||||
the tables inside Netscape are generated from the Adobe fonts.
|
||||
But if the fonts are different (say, those supplied with Ghostscripts
|
||||
or the fonts with non-latin characters) then the result is quite
|
||||
ugly. This program allows to replace the width tables inside
|
||||
the Netscape executable with the tables for any given font.
|
||||
The only problem is that Netscape can hold only one set of tables
|
||||
at once. So if you want to print with different fonts (say,
|
||||
for different languages or encodings) you will have to make
|
||||
multiple copies of the executable, tune each of them for its
|
||||
font and then run them separately.
|
||||
<p>
|
||||
|
||||
I tried to make the program as machine-independent as possible.
|
||||
But because it patches the binary files it still has the dependencies
|
||||
on hardware. The default version as supplied was designed for
|
||||
Intel x86 machines but it should work OK on any machine
|
||||
with 32-bit CPU and 4Kbyte (or less) page size. If it can't
|
||||
find the tables matching the font names on some other architecture
|
||||
the first thing to try would be reduce the `<tt>PAGEBITS</tt>' definition
|
||||
in the source code. On the machines with non-page-aligned structure
|
||||
of executables it won't work at all. I don't know whether would
|
||||
it work on the 64-bit machines. This may depend on whether the
|
||||
Netscape executable was compiled in 32-bit or 64-bit mode. For
|
||||
the 64-bit executables it may be neccessary to change the definition
|
||||
of the type `<tt>tptr</tt>' to an 8-byte integer type (probably `<tt>long</tt>'
|
||||
or `<tt>long long</tt>'). Also must be re-compiled for patching of the
|
||||
Netscape binary for each particular machine architecture because
|
||||
it assumes the byte order of the current machine.
|
||||
<p>
|
||||
|
||||
It might be possible to create a program that would patch
|
||||
a running Netscape binary on the fly, that would allow
|
||||
changing the printing fonts as neccessary when Netscape is
|
||||
running. But this would be even more platform-dependent,
|
||||
so I don't feel any enthusiasm about doing that.
|
||||
<p>
|
||||
|
||||
I have tested the program on the Intel machines, Netscape
|
||||
4.08 and 4.7, OS FreeBSD (both a.out and ELF formats of the
|
||||
Netscape binary) and UnixWare.
|
||||
<p>
|
||||
|
||||
After all these scary issues are resolved the compiling
|
||||
is easy: just run `<tt>make</tt>'.
|
||||
<p>
|
||||
|
||||
To command to patch the Netscape is:
|
||||
<p>
|
||||
<tt>
|
||||
./nsfix <i><netscape-binary> <config-file></i>
|
||||
</tt>
|
||||
<p>
|
||||
|
||||
Please make a copy of the original Netscape binary before
|
||||
patching in case anything goes wrong. Patch the copy, test
|
||||
that it works OK and only then install it. The configuration
|
||||
file describes the fonts that are to be used. An example
|
||||
is provided in the file psfonts.cf.
|
||||
<p>
|
||||
|
||||
Each line in the configuration file consists of 4
|
||||
columns:
|
||||
<p>
|
||||
|
||||
<tt><i>
|
||||
<PS_font_name> <font_base_file> <suffix_afm> <suffix_font>
|
||||
</i></tt>
|
||||
<p>
|
||||
|
||||
For example, the following line from my configuration file:
|
||||
<p>
|
||||
|
||||
<tt>
|
||||
Courier /usr/lib/X11/fonts/ttf/cokoi8n.koi8-r .afm .pfa
|
||||
</tt>
|
||||
<p>
|
||||
|
||||
says that the font `Courier' will be replaced with the
|
||||
font taken from the file `<tt>/usr/lib/X11/fonts/ttf/cokoi8n.koi8-r.pfa</tt>'
|
||||
and the metrics for that font will be taken from the file
|
||||
`<tt>/usr/lib/X11/fonts/ttf/cokoi8n.koi8-r.afm</tt>' .
|
||||
<p>
|
||||
|
||||
One more caveat: the new font must have a proper encoding
|
||||
table. Some fonts contain characters for multiple encodings
|
||||
hoping that the program wil re-encode them as neccessary.
|
||||
This won't work in this case, only the primary encoding table
|
||||
of the font will be used.
|
||||
<p>
|
||||
|
||||
<h4><tt>
|
||||
nsfilter<br>
|
||||
nsprint<br>
|
||||
psfonts.cf
|
||||
</tt></h4>
|
||||
<p>
|
||||
|
||||
These are the filters for printing from Netscape.
|
||||
<p>
|
||||
|
||||
Changing the metrics is not the end of the story. This will
|
||||
provide proper placement of the characters but not the
|
||||
characters themselves. There are a few ways to provide
|
||||
the characters:
|
||||
<p>
|
||||
|
||||
First, if you use GhostScript you may configure proper
|
||||
aliases in the GhostScript configuration file. We will
|
||||
consider this variant trivial and won't discuss it furter
|
||||
except for one caveat: Netscape tries to re-encode the
|
||||
fonts per the ISO Latin-1 encoding. If the primary encoding
|
||||
of the font is different this cause unexpected effects.
|
||||
So you still may consider using the filters (at least in a
|
||||
simplified form) to solve this problem.
|
||||
<p>
|
||||
|
||||
Second, load the fonts right into your printer. This is
|
||||
very much like configuring GhostScript.
|
||||
<p>
|
||||
|
||||
Third, use the provided filters. The script `<tt>nsfilter</tt>'
|
||||
reads the output of Netscape on its standard input and
|
||||
puts the result to its standard output. It uses the same
|
||||
configuration file `<tt>psfonts.cf</tt>' as `<tt>nsfix</tt>'. First it
|
||||
looks for the configuration file in the user's home
|
||||
directory (<tt>$HOME/.netscape/psfonts.cf</tt>) and if the
|
||||
file it not there then the second guess is the system-wide
|
||||
configuration file <tt>/usr/local/etc/psfonts.cf</tt>. The
|
||||
script inserts the fonts into the output and also
|
||||
removes the Netscape's experiments with the encodings.
|
||||
<p>
|
||||
|
||||
`<tt>nsfilter</tt>' is generally intended to be ran by user, not by the
|
||||
printing subsystem. The reason is that the user may have
|
||||
changed fonts in his Netscape and the printing subsystem
|
||||
would have no way to access user's configuration file.
|
||||
But if all the users are using the same fonts then it
|
||||
may be incorporated into the printing subsystem and use
|
||||
the system-wide configuration file.
|
||||
<p>
|
||||
|
||||
The script `<tt>nsprint</tt>' is purely for convenience, to type it
|
||||
as a printing command in the Netscape printing window.
|
||||
It just pipelines the data through `<tt>nsfilter</tt>' to the
|
||||
printing program which also gets all the arguments. Please
|
||||
note that the SystemV-style and BSD-style systems use different
|
||||
printing programs (although they commonly provide compatibility
|
||||
with the other style too). The script tries to guess the
|
||||
type of system and use its native print program, `<tt>lp</tt>' or
|
||||
`<tt>lpr</tt>'. But in case it guesses wrong you may want
|
||||
to change this in the script. Also if the printer does not support
|
||||
PostScript directly this script may be a good place to
|
||||
insert a call to GhostScript.
|
||||
<p>
|
||||
|
||||
<h4><tt>
|
||||
notscape<br>
|
||||
fontsz.cf
|
||||
</tt></h4>
|
||||
<p>
|
||||
|
||||
Netscape on Unix has a very annoying "feature", it does
|
||||
not remember the desired base size of the scalable screen
|
||||
fonts and always resets it to 12.0 points. Even if the size
|
||||
is changed manually in its preferences file, Netscape
|
||||
forgets it after it exits.
|
||||
<p>
|
||||
|
||||
So my solution was to write a program which would change
|
||||
the size to my favorite one every time right before
|
||||
starting Netscape. `<tt>notscape</tt>' is exactly such a program,
|
||||
it sets the font sizes an then transparently executes
|
||||
netscape. It takes the font sizes from the file
|
||||
`<tt>$HOME/.netscape/fontsz.cf</tt>' . An example of such file
|
||||
is provided. The format of the file is quite self-explanatory,
|
||||
for example the lines
|
||||
<p>
|
||||
|
||||
<tt>
|
||||
fixed-koi8-r 140<br>
|
||||
prop-koi8-r 150
|
||||
</tt>
|
||||
<p>
|
||||
|
||||
mean "set the size of the fixed-width screen font in the
|
||||
encoding koi8-r to 14.0 points; set the size of the proportional
|
||||
(variable-width) font in the encoding koi8-r to 15.0 points".
|
||||
<p>
|
||||
|
||||
|
||||
<h3><tt>
|
||||
nspr
|
||||
</tt><br>
|
||||
by Zvezdan Petkovic</h3>
|
||||
<p>
|
||||
|
||||
To print from Netscape, I usually print to the Postscript file first.
|
||||
Then I use this small script to change the names of Times and Courier fonts
|
||||
in the file and remove `/Encoding' lines. After that the file can be
|
||||
sent to printer.
|
||||
<p>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
8
pdf/lib/ttf2ufm/src/app/netscape/fontsz.cf
Executable file
8
pdf/lib/ttf2ufm/src/app/netscape/fontsz.cf
Executable file
@@ -0,0 +1,8 @@
|
||||
fixed-koi8-r 150
|
||||
prop-koi8-r 150
|
||||
fixed-iso-8859-5 150
|
||||
prop-iso-8859-5 150
|
||||
fixed-iso-8859-1 150
|
||||
prop-iso-8859-1 150
|
||||
fixed-x-user-defined 150
|
||||
prop-x-user-defined 150
|
||||
25
pdf/lib/ttf2ufm/src/app/netscape/notscape
Executable file
25
pdf/lib/ttf2ufm/src/app/netscape/notscape
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
NDIR=$HOME/.netscape
|
||||
PFILE=$NDIR/preferences.js
|
||||
CFFILE=$NDIR/fontsz.cf
|
||||
TMPFILE=$NDIR/fontsz.sed
|
||||
|
||||
die() {
|
||||
echo "notscape: can't $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -r $CFFILE ] && {
|
||||
awk '{ printf("/intl.font_spec_list/s/-[^-]*-\\([^-]*\\)-%s,/-%s-\\1-%s,/\n", \
|
||||
$1, $2, $1); }' <$CFFILE >$TMPFILE
|
||||
|
||||
cp $PFILE $PFILE.old || die "save old pref file"
|
||||
sed -f $TMPFILE <$PFILE.old >$PFILE.new || die "create new pref file"
|
||||
[ -s $PFILE.new ] || die "create new pref file"
|
||||
|
||||
mv $PFILE.new $PFILE || die "install new pref file"
|
||||
|
||||
}
|
||||
|
||||
exec netscape -no-about-splash "$@"
|
||||
24
pdf/lib/ttf2ufm/src/app/netscape/nsfilter
Executable file
24
pdf/lib/ttf2ufm/src/app/netscape/nsfilter
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
CONFLOCAL=$HOME/.netscape/psfonts.cf
|
||||
CONFGLOBAL=/usr/local/etc/nspsfonts.cf
|
||||
|
||||
if [ -r "$CONFLOCAL" ]
|
||||
then
|
||||
CONF="$CONFLOCAL"
|
||||
else
|
||||
CONF="$CONFGLOBAL"
|
||||
fi
|
||||
|
||||
grep -v "^#" <$CONF | grep -v "^$" | while :
|
||||
do {
|
||||
read nsname base afm pfa x
|
||||
[ -z "$nsname" ] && break;
|
||||
|
||||
fname=`awk '/^FontName/ {print $2;}' <$base$afm`
|
||||
|
||||
cat $base$pfa
|
||||
echo "/$nsname /$fname findfont definefont"
|
||||
|
||||
} done
|
||||
|
||||
grep -v "^ /Encoding isolatin1encoding def$" | egrep -v '^newpath .* closepath clip newpath$'
|
||||
469
pdf/lib/ttf2ufm/src/app/netscape/nsfix.c
Executable file
469
pdf/lib/ttf2ufm/src/app/netscape/nsfix.c
Executable file
@@ -0,0 +1,469 @@
|
||||
/*
|
||||
* Fix the Netscape executable for specified font widths
|
||||
*
|
||||
* (c) 1999 Copyright by Sergey Babkin
|
||||
* see COPYRIGHT
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <locale.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/************************** DEFINES *************************/
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
/* we can handle at most this many fonts */
|
||||
#define MAXFONTS 20
|
||||
|
||||
/* maximal line buffer size */
|
||||
#define MAXLINE 512
|
||||
|
||||
/* there may be multiple strings with the same contents */
|
||||
#define MAXDUPS 10
|
||||
|
||||
/* file read buffer size */
|
||||
#define FILEBF 40960
|
||||
|
||||
/* bits in the hardware page offset */
|
||||
#define BITSPERPAGE 12
|
||||
|
||||
/* size of page in bytes */
|
||||
#define PAGESIZE (1<<BITSPERPAGE)
|
||||
|
||||
/* mask of the in-page offset */
|
||||
#define PAGEMASK (PAGESIZE-1)
|
||||
|
||||
/* this is machine-dependent! */
|
||||
typedef short t2b; /* 2-byte type */
|
||||
typedef int t4b; /* 4-byte type */
|
||||
typedef int tptr; /* integer type with the same size as pointer */
|
||||
|
||||
struct bbox { /* bounding box */
|
||||
t2b llx; /* lower-left-x */
|
||||
t2b lly;
|
||||
t2b urx;
|
||||
t2b ury; /* upper-right-y */
|
||||
};
|
||||
|
||||
struct glyphmetrics { /* metrics of one glyph */
|
||||
t2b width;
|
||||
t2b unknown;
|
||||
struct bbox bbox;
|
||||
};
|
||||
|
||||
struct fontmetrics { /* metrics of the wholefont */
|
||||
tptr name;
|
||||
struct bbox bbox;
|
||||
t2b underlinepos;
|
||||
t2b underlinethick;
|
||||
struct glyphmetrics glyphs[256];
|
||||
};
|
||||
|
||||
struct font {
|
||||
char nsname[MAXLINE]; /* name in the Netscape binary */
|
||||
char afmname[MAXLINE]; /* name of the .afm file */
|
||||
char pfaname[MAXLINE]; /* name of the .pfa (or .pfb) file */
|
||||
struct fontmetrics metrics;
|
||||
off_t binoff; /* offset in the binary */
|
||||
};
|
||||
|
||||
#define SCONST(x) (x), ((sizeof (x))-1)
|
||||
|
||||
/************************** GLOBALS *************************/
|
||||
|
||||
struct font font[MAXFONTS];
|
||||
int nfonts=0;
|
||||
|
||||
char msg[MAXLINE];
|
||||
|
||||
/*************************** PROTOTYPES **********************/
|
||||
|
||||
void usage(void);
|
||||
void readconfig( char *fn);
|
||||
void readmetrics(void);
|
||||
void replacefonts( char *fn);
|
||||
|
||||
/************************** main ****************************/
|
||||
|
||||
main(ac, av)
|
||||
int ac;
|
||||
char **av;
|
||||
{
|
||||
setlocale(LC_ALL, "");
|
||||
|
||||
if(ac!=3) {
|
||||
usage(); exit(1);
|
||||
}
|
||||
|
||||
readconfig(av[2]);
|
||||
readmetrics();
|
||||
replacefonts( av[1]);
|
||||
}
|
||||
|
||||
/************************** usage ***************************/
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr,"Use:\n");
|
||||
fprintf(stderr," nsfix <netscape.bin> <config-file>\n");
|
||||
}
|
||||
|
||||
|
||||
/************************** readconfig **********************/
|
||||
|
||||
void
|
||||
readconfig(fn)
|
||||
char *fn;
|
||||
{
|
||||
char s[MAXLINE];
|
||||
char afmsuffix[MAXLINE], pfasuffix[MAXLINE];
|
||||
int lineno=0;
|
||||
FILE *f;
|
||||
|
||||
if(( f=fopen(fn, "r") )==NULL) {
|
||||
sprintf(msg,"nsfix: open %s",fn);
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
while( fgets(s, MAXLINE, f) ) {
|
||||
lineno++;
|
||||
if(s[0]=='#' || s[0]=='\n')
|
||||
continue;
|
||||
|
||||
if(nfonts>=MAXFONTS) {
|
||||
fprintf(stderr, "nsfix: only %d fonts are supported at once\n",
|
||||
MAXFONTS);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if( sscanf(s, "%s %s %s %s", font[nfonts].nsname,
|
||||
font[nfonts].afmname, afmsuffix, pfasuffix) != 4 ) {
|
||||
fprintf(stderr, "nsfix: syntax error at line %d of %s\n",
|
||||
lineno, fn);
|
||||
exit(1);
|
||||
}
|
||||
strcpy(font[nfonts].pfaname, font[nfonts].afmname);
|
||||
strcat(font[nfonts].afmname, afmsuffix);
|
||||
strcat(font[nfonts].pfaname, pfasuffix);
|
||||
nfonts++;
|
||||
}
|
||||
|
||||
if(nfonts==0) {
|
||||
fprintf(stderr, "nsfix: no fonts are defined in %s\n", fn);
|
||||
exit(1);
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/************************** readmetrics *********************/
|
||||
|
||||
void
|
||||
readmetrics(void)
|
||||
{
|
||||
int i;
|
||||
char s[MAXLINE];
|
||||
FILE *f;
|
||||
int n;
|
||||
int lineno;
|
||||
int code, width, llx, lly, urx, ury;
|
||||
char gn[MAXLINE];
|
||||
struct glyphmetrics *gm;
|
||||
|
||||
for(i=0; i<nfonts; i++) {
|
||||
if(( f=fopen(font[i].afmname, "r") )==NULL) {
|
||||
sprintf(msg,"nsfix: open %s", font[i].afmname);
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
lineno=0;
|
||||
while( fgets(s, MAXLINE, f) ) {
|
||||
lineno++;
|
||||
if( !strncmp(s, SCONST("UnderlineThickness ")) ) {
|
||||
if( sscanf(s, "UnderlineThickness %d", &n) <1) {
|
||||
fprintf(stderr, "nsfix: weird UnderlineThickness at line %d in %s\n",
|
||||
lineno, font[i].afmname);
|
||||
exit(1);
|
||||
}
|
||||
font[i].metrics.underlinethick=n;
|
||||
} else if( !strncmp(s, SCONST("UnderlinePosition ")) ) {
|
||||
if( sscanf(s, "UnderlinePosition %d", &n) <1) {
|
||||
fprintf(stderr, "nsfix: weird UnderlinePosition at line %d in %s\n",
|
||||
lineno, font[i].afmname);
|
||||
exit(1);
|
||||
}
|
||||
font[i].metrics.underlinepos=n;
|
||||
} else if( !strncmp(s, SCONST("FontBBox ")) ) {
|
||||
if( sscanf(s, "FontBBox %d %d %d %d", &llx, &lly, &urx, &ury) <4) {
|
||||
fprintf(stderr, "nsfix: weird FontBBox at line %d in %s\n",
|
||||
lineno, font[i].afmname);
|
||||
exit(1);
|
||||
}
|
||||
font[i].metrics.bbox.llx=llx;
|
||||
font[i].metrics.bbox.lly=lly;
|
||||
font[i].metrics.bbox.urx=urx;
|
||||
font[i].metrics.bbox.ury=ury;
|
||||
} else if( !strncmp(s, SCONST("C ")) ) {
|
||||
if( sscanf(s, "C %d ; WX %d ; N %s ; B %d %d %d %d",
|
||||
&code, &width, &gn, &llx, &lly, &urx, &ury) <7)
|
||||
{
|
||||
fprintf(stderr, "nsfix: weird metrics at line %d in %s\n",
|
||||
lineno, font[i].afmname);
|
||||
exit(1);
|
||||
}
|
||||
if(code>=32 && code<=255) {
|
||||
font[i].metrics.glyphs[code].width=width;
|
||||
font[i].metrics.glyphs[code].bbox.llx=llx;
|
||||
font[i].metrics.glyphs[code].bbox.lly=lly;
|
||||
font[i].metrics.glyphs[code].bbox.urx=urx;
|
||||
font[i].metrics.glyphs[code].bbox.ury=ury;
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
for(i=0; i<nfonts; i++) {
|
||||
printf("Font %s\n", font[i].nsname);
|
||||
for(n=0; n<256; n++) {
|
||||
gm= &font[i].metrics.glyphs[n];
|
||||
printf(" %d w=%4d [%4d %4d %4d %4d]", n, gm->width,
|
||||
gm->bbox.llx, gm->bbox.lly, gm->bbox.urx, gm->bbox.ury);
|
||||
printf(" w=0x%04x [0x%04x 0x%04x 0x%04x 0x%04x]\n", gm->width & 0xffff,
|
||||
gm->bbox.llx & 0xffff, gm->bbox.lly & 0xffff, gm->bbox.urx & 0xffff, gm->bbox.ury & 0xffff);
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/************************** replacefonts ********************/
|
||||
|
||||
void
|
||||
replacefonts(fn)
|
||||
char *fn;
|
||||
{
|
||||
int f; /* don't use stdio */
|
||||
char bf[FILEBF];
|
||||
char *bfend, *p;
|
||||
int len;
|
||||
off_t pos;
|
||||
|
||||
off_t zerooff[MAXFONTS*MAXDUPS]; /* offset of zero strings */
|
||||
tptr nameaddr[MAXFONTS*MAXDUPS]; /* name pointers before these zero strings */
|
||||
int zeroid[MAXFONTS*MAXDUPS]; /* font number for this zero block */
|
||||
int nzeroes;
|
||||
short matched[MAXFONTS]; /* counters how many matches we have for each requested font */
|
||||
struct fontmetrics *fp;
|
||||
|
||||
struct {
|
||||
int noff;
|
||||
int nz;
|
||||
off_t off[MAXDUPS]; /* there may be multiple strings with the same contents */
|
||||
} o[MAXFONTS];
|
||||
int maxnlen;
|
||||
int i, j, k, n;
|
||||
|
||||
static struct glyphmetrics gm[32]; /* 0-initialized */
|
||||
|
||||
|
||||
if(( f=open(fn, O_RDWR) )<0) {
|
||||
sprintf(msg,"nsfix: open %s",fn);
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
/* get the maximal font name length */
|
||||
maxnlen=0;
|
||||
for(i=0; i<nfonts; i++) {
|
||||
o[i].noff=o[i].nz=0;
|
||||
matched[i]=0;
|
||||
len=strlen(font[i].nsname)+1;
|
||||
if(len>maxnlen)
|
||||
maxnlen=len;
|
||||
}
|
||||
|
||||
/* fprintf(stderr,"maxnlen= 0x%x\n", maxnlen); /* */
|
||||
/* try to find the literal strings of the font names */
|
||||
pos=0; bfend=bf;
|
||||
while(( len=read(f, bfend, FILEBF-(bfend-bf)) )>=0 ) {
|
||||
/* fprintf(stderr,"looking at 0x%lx\n", (long)pos); /* */
|
||||
/* the last position to check */
|
||||
if(len>=maxnlen)
|
||||
/* leave the rest with the next block */
|
||||
bfend+= len-maxnlen;
|
||||
else {
|
||||
/* we are very near to the end of file, check
|
||||
* up to the very last byte */
|
||||
bfend+= len-2;
|
||||
memset(bfend+2, 0, maxnlen);
|
||||
}
|
||||
|
||||
for(p=bf; p<=bfend; p++)
|
||||
for(i=0; i<nfonts; i++)
|
||||
if(!strcmp(font[i].nsname, p) && o[i].noff<MAXDUPS) {
|
||||
o[i].off[ o[i].noff++ ] = pos + (p-bf);
|
||||
fprintf(stderr,"found %s at 0x%lx\n", font[i].nsname, (long)pos + (p-bf));
|
||||
}
|
||||
|
||||
if(len==0)
|
||||
break;
|
||||
|
||||
memmove(bf, bfend, maxnlen);
|
||||
pos+= (bfend-bf);
|
||||
bfend= (bf+maxnlen);
|
||||
}
|
||||
if(len<0) {
|
||||
sprintf(msg,"nsfix: read %s",fn);
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
fprintf(stderr,"---\n");
|
||||
/* if there are any dups try to resolve them */
|
||||
for(i=0; i<nfonts; i++) {
|
||||
if(o[i].noff==0) {
|
||||
fprintf(stderr, "nsfix: font %s (%d of %d) is missing in %s\n",
|
||||
font[i].nsname, i, nfonts, fn);
|
||||
exit(1);
|
||||
}
|
||||
if(o[i].noff!=1)
|
||||
continue;
|
||||
/* good, only one entry */
|
||||
fprintf(stderr,"found unique %s at 0x%lx\n", font[i].nsname, (long)o[i].off[0] );
|
||||
/* if any dupped entry is right after this one then it's good */
|
||||
/* if it's farther than PAGESIZE/2 then it's bad */
|
||||
pos=o[i].off[0]+strlen(font[i].nsname)+1;
|
||||
for(j=0; j<MAXFONTS; j++) {
|
||||
if(o[j].noff<=1)
|
||||
continue;
|
||||
for(k=0; k<o[j].noff; k++) {
|
||||
if(o[j].off[k]==pos) { /* good */
|
||||
fprintf(stderr,"got unique %s at 0x%lx\n", font[j].nsname, (long)pos );
|
||||
o[j].off[0]=pos;
|
||||
o[j].noff=1;
|
||||
break;
|
||||
}
|
||||
if(o[j].off[k] < pos - PAGESIZE/2
|
||||
|| o[j].off[k] > pos + PAGESIZE/2) { /* bad */
|
||||
fprintf(stderr, "eliminated %s at 0x%lx\n", font[j].nsname, (long)o[j].off[k] );
|
||||
for(n=k+1; n<o[j].noff; n++)
|
||||
o[j].off[n-1]=o[j].off[n];
|
||||
o[j].noff--;
|
||||
k--;
|
||||
}
|
||||
}
|
||||
if(o[j].noff==1 && j<i) { /* have to revisit this font */
|
||||
i=j-1; /* compensate for i++ */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* try to find the metric tables in the executable */
|
||||
if(lseek(f, (off_t)0, SEEK_SET)<0) {
|
||||
sprintf(msg,"nsfix: rewind %s",fn);
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* search for the zeroes in place of the metrics for the codes 0-31:
|
||||
* 4-byte aligned strings of (32*sizeof(struct glyphmetrics)) zero bytes
|
||||
*/
|
||||
maxnlen=sizeof(struct fontmetrics);
|
||||
|
||||
pos=0; bfend=bf; nzeroes=0;
|
||||
while(( len=read(f, bfend, FILEBF-(bfend-bf)) )>=0 ) {
|
||||
/* fprintf(stderr,"looking at 0x%lx\n", (long)pos); /* */
|
||||
/* the last position to check */
|
||||
bfend+= len-maxnlen; /* don't look beyond the EOF */
|
||||
|
||||
for(p=bf; p<=bfend; p+=4 /* 4-byte aligned */ ) {
|
||||
fp=(struct fontmetrics *)p;
|
||||
if(fp->name==0)
|
||||
continue;
|
||||
if( memcmp(gm, fp->glyphs, sizeof gm) )
|
||||
continue;
|
||||
|
||||
/* OK, looks like it, see if we can match it to any name */
|
||||
n= fp->name & PAGEMASK;
|
||||
for(i=0; i<nfonts; i++) {
|
||||
for(j=0; j<o[i].noff; j++)
|
||||
if( n==(o[i].off[j] & PAGEMASK) ) {
|
||||
zerooff[nzeroes]= pos + (p-bf);
|
||||
nameaddr[nzeroes]= fp->name;
|
||||
zeroid[nzeroes]=i;
|
||||
o[i].nz++;
|
||||
fprintf(stderr, "matched %s at 0x%lx\n",
|
||||
font[i].nsname, (long) zerooff[nzeroes]);
|
||||
nzeroes++;
|
||||
matched[i]++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(len==0)
|
||||
break;
|
||||
|
||||
memmove(bf, bfend, maxnlen);
|
||||
pos+= (bfend-bf);
|
||||
bfend= (bf+maxnlen);
|
||||
}
|
||||
if(len<0) {
|
||||
sprintf(msg,"nsfix: read %s",fn);
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
fprintf(stderr,"---\n");
|
||||
|
||||
/* make sure that all the fonts got one match */
|
||||
k=0; /* flag: have non-matched fonts */ n=0; /* flag: have ambiguities */
|
||||
for(i=0; i<nfonts; i++)
|
||||
if(matched[i]==0)
|
||||
k=1;
|
||||
else if(matched[i]>1)
|
||||
n=1;
|
||||
|
||||
if(k) {
|
||||
fprintf(stderr,"nsfix: can't find match for some of the fonts\n");
|
||||
fprintf(stderr,"nsfix: maybe wrong byte order, aborting\n");
|
||||
exit(1);
|
||||
}
|
||||
if(n) {
|
||||
fprintf(stderr,"nsfix: got multiple matches for some of the fonts\n");
|
||||
fprintf(stderr,"nsfix: can't resolve, aborting\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* now finally write the updated tables */
|
||||
for(i=0; i<nzeroes; i++) {
|
||||
j=zeroid[i];
|
||||
fprintf(stderr, "nsfix: writing table for %s at 0x%lx\n", font[j].nsname,
|
||||
(long)zerooff[i]);
|
||||
|
||||
font[j].metrics.name=nameaddr[i];
|
||||
if( lseek(f, zerooff[i], SEEK_SET)<0 ) {
|
||||
sprintf(msg,"nsfix: seek %s to 0x%lx",fn, (long)zerooff[i] );
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
if( write(f, &font[j].metrics, sizeof font[j].metrics) != sizeof font[j].metrics ) {
|
||||
sprintf(msg,"nsfix: write to %s",fn );
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
close(f);
|
||||
}
|
||||
26
pdf/lib/ttf2ufm/src/app/netscape/nspr
Executable file
26
pdf/lib/ttf2ufm/src/app/netscape/nspr
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
if [ $# != 2 ]
|
||||
then
|
||||
echo "Usage: 'nspr # file.ps' where # is 2, 5, or 1251"
|
||||
exit
|
||||
else
|
||||
enc=$1
|
||||
shift
|
||||
fi
|
||||
case ${enc} in
|
||||
1250|1251)
|
||||
charset=windows
|
||||
;;
|
||||
*)
|
||||
charset=iso8859
|
||||
;;
|
||||
esac
|
||||
sed "s/Times-Roman/Timesnew-Roman-${charset}-${enc}/g;\
|
||||
s/Times-Italic/Timesnew-Italic-${charset}-${enc}/g;\
|
||||
s/Times-BoldItalic/Timesnew-BoldItalic-${charset}-${enc}/g;\
|
||||
s/Times-Bold/Timesnew-Bold-${charset}-${enc}/g;\
|
||||
s/Courier/Couriernew-Roman-${charset}-${enc}/g;\
|
||||
s/Couriernew-Roman-${charset}-${enc}-BoldOblique/Couriernew-BoldItalic-${charset}-${enc}/g;\
|
||||
s/Couriernew-Roman-${charset}-${enc}-Bold/Couriernew-Bold-${charset}-${enc}/g;\
|
||||
s/Couriernew-Roman-${charset}-${enc}-Oblique/Couriernew-Italic-${charset}-${enc}/g;" $* | \
|
||||
grep -v "^ /Encoding isolatin1encoding def$"
|
||||
10
pdf/lib/ttf2ufm/src/app/netscape/nsprint
Executable file
10
pdf/lib/ttf2ufm/src/app/netscape/nsprint
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
if uname -s | grep -i bsd >/dev/null
|
||||
then
|
||||
LPR=lpr
|
||||
else
|
||||
LPR=lp
|
||||
fi
|
||||
|
||||
nsfilter | $LPR "$@"
|
||||
11
pdf/lib/ttf2ufm/src/app/netscape/psfonts.cf
Executable file
11
pdf/lib/ttf2ufm/src/app/netscape/psfonts.cf
Executable file
@@ -0,0 +1,11 @@
|
||||
# PS_font_name font_base_file suffix_afm suffix_font
|
||||
|
||||
Courier /usr/lib/X11/fonts/ttf/cokoi8n.koi8-r .afm .pfa
|
||||
Courier-Bold /usr/lib/X11/fonts/ttf/cokoi8b.koi8-r .afm .pfa
|
||||
Courier-Oblique /usr/lib/X11/fonts/ttf/cokoi8i.koi8-r .afm .pfa
|
||||
Courier-BoldOblique /usr/lib/X11/fonts/ttf/cokoi8bi.koi8-r .afm .pfa
|
||||
|
||||
Times-Roman /usr/lib/X11/fonts/ttf/kudriash.koi8-r .afm .pfa
|
||||
Times-Bold /usr/lib/X11/fonts/ttf/kudrias1.koi8-r .afm .pfa
|
||||
Times-Italic /usr/lib/X11/fonts/ttf/kudrias3.koi8-r .afm .pfa
|
||||
Times-BoldItalic /usr/lib/X11/fonts/ttf/kudrias2.koi8-r .afm .pfa
|
||||
661
pdf/lib/ttf2ufm/src/bdf.c
Executable file
661
pdf/lib/ttf2ufm/src/bdf.c
Executable file
@@ -0,0 +1,661 @@
|
||||
/*
|
||||
* The font parser for the BDF files
|
||||
*
|
||||
* Copyright (c) 2001 by the TTF2PT1 project
|
||||
* Copyright (c) 2001 by Sergey Babkin
|
||||
*
|
||||
* see COPYRIGHT for the full copyright notice
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include "pt1.h"
|
||||
#include "global.h"
|
||||
|
||||
/* prototypes of call entries */
|
||||
static void openfont(char *fname, char *arg);
|
||||
static void closefont( void);
|
||||
static int getnglyphs ( void);
|
||||
static int glnames( GLYPH *glyph_list);
|
||||
static void readglyphs( GLYPH *glyph_list);
|
||||
static int glenc( GLYPH *glyph_list, int *encoding, int *unimap);
|
||||
static void fnmetrics( struct font_metrics *fm);
|
||||
static void glpath( int glyphno, GLYPH *glyph_list);
|
||||
static void kerning( GLYPH *glyph_list);
|
||||
|
||||
/* globals */
|
||||
|
||||
/* front-end descriptor */
|
||||
struct frontsw bdf_sw = {
|
||||
/*name*/ "bdf",
|
||||
/*descr*/ "BDF bitmapped fonts",
|
||||
/*suffix*/ { "bdf" },
|
||||
/*open*/ openfont,
|
||||
/*close*/ closefont,
|
||||
/*nglyphs*/ getnglyphs,
|
||||
/*glnames*/ glnames,
|
||||
/*glmetrics*/ readglyphs,
|
||||
/*glenc*/ glenc,
|
||||
/*fnmetrics*/ fnmetrics,
|
||||
/*glpath*/ glpath,
|
||||
/*kerning*/ kerning,
|
||||
};
|
||||
|
||||
/* statics */
|
||||
|
||||
#define MAXLINE 10240 /* maximal line length in the input file */
|
||||
|
||||
static int lineno; /* line number */
|
||||
|
||||
#define GETLEN(s) s, (sizeof(s)-1)
|
||||
#define LENCMP(str, txt) strncmp(str, txt, sizeof(txt)-1)
|
||||
|
||||
static FILE *bdf_file;
|
||||
static int nglyphs;
|
||||
static struct font_metrics fmet;
|
||||
|
||||
/* many BDF fonts are of small pixel size, so we better try
|
||||
* to scale them by an integer to keep the dimensions in
|
||||
* whole pixels. However if the size is too big and a non-
|
||||
* integer scaling is needed, we use the standard ttf2pt1's
|
||||
* scaling abilities.
|
||||
*/
|
||||
static int pixel_size;
|
||||
static int scale;
|
||||
static int scale_external;
|
||||
|
||||
static char *slant;
|
||||
static char xlfdname[201];
|
||||
static char *spacing;
|
||||
static char *charset_reg;
|
||||
static char *charset_enc;
|
||||
static char *fnwidth;
|
||||
static int is_unicode = 0;
|
||||
|
||||
/* tempoary storage for returning data to ttf2pt1 later on request */
|
||||
static int maxenc = 0;
|
||||
static int *fontenc;
|
||||
static GENTRY **glpaths;
|
||||
|
||||
static int got_glyphs = 0;
|
||||
static GLYPH *glyphs;
|
||||
static int curgl;
|
||||
|
||||
static int readfile(FILE *f, int (*strfunc)(int len, char *str));
|
||||
|
||||
/*
|
||||
* Read the file and parse each string with strfunc(),
|
||||
* until strfunc() returns !=0 or the end of file happens.
|
||||
* Returns -1 on EOF or strfunc() returning <0, else 0
|
||||
*/
|
||||
|
||||
static int
|
||||
readfile(
|
||||
FILE *f,
|
||||
int (*strfunc)(int len, char *str)
|
||||
)
|
||||
{
|
||||
static char str[MAXLINE]; /* input line, maybe should be dynamic ? */
|
||||
char *s;
|
||||
int len, c, res;
|
||||
|
||||
len=0;
|
||||
while(( c=getc(f) )!=EOF) {
|
||||
if(c=='\n') {
|
||||
str[len]=0;
|
||||
|
||||
res = strfunc(len, str);
|
||||
lineno++;
|
||||
if(res<0)
|
||||
return -1;
|
||||
else if(res!=0)
|
||||
return 0;
|
||||
|
||||
len=0;
|
||||
} else if(len<MAXLINE-1) {
|
||||
if(c!='\r')
|
||||
str[len++]=c;
|
||||
} else {
|
||||
fprintf(stderr, "**** bdf: line %d is too long (>%d)\n", lineno, MAXLINE-1);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
return -1; /* EOF */
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse the header of the font file.
|
||||
* Stop after the line CHARS is encountered. Ignore the unknown lines.
|
||||
*/
|
||||
|
||||
struct line {
|
||||
char *name; /* property name with trailing space */
|
||||
int namelen; /* length of the name string */
|
||||
enum {
|
||||
ALLOW_REPEAT = 0x01, /* this property may be repeated in multiple lines */
|
||||
IS_SEEN = 0x02, /* this property has been seen already */
|
||||
MUST_SEE = 0x04, /* this property must be seen */
|
||||
IS_LAST = 0x08 /* this is the last property to be read */
|
||||
} flags;
|
||||
char *fmt; /* format string for the arguments, NULL means a string arg */
|
||||
int nvals; /* number of values to be read by sscanf */
|
||||
void *vp[4]; /* pointers to values to be read */
|
||||
};
|
||||
|
||||
static struct line header[] = {
|
||||
{ GETLEN("FONT "), 0, " %200s", 1, {&xlfdname} },
|
||||
{ GETLEN("SIZE "), MUST_SEE, " %d", 1, {&pixel_size} },
|
||||
{ GETLEN("FONTBOUNDINGBOX "), MUST_SEE, " %hd %hd %hd %hd", 4,
|
||||
{&fmet.bbox[2], &fmet.bbox[3], &fmet.bbox[0], &fmet.bbox[1]} },
|
||||
{ GETLEN("FAMILY_NAME "), MUST_SEE, NULL, 1, {&fmet.name_family} },
|
||||
{ GETLEN("WEIGHT_NAME "), MUST_SEE, NULL, 1, {&fmet.name_style} },
|
||||
{ GETLEN("COPYRIGHT "), 0, NULL, 1, {&fmet.name_copyright} },
|
||||
{ GETLEN("SLANT "), MUST_SEE, NULL, 1, {&slant} },
|
||||
{ GETLEN("SPACING "), 0, NULL, 1, {&spacing} },
|
||||
{ GETLEN("SETWIDTH_NAME "), 0, NULL, 1, {&fnwidth} },
|
||||
{ GETLEN("CHARSET_REGISTRY "), 0, NULL, 1, {&charset_reg} },
|
||||
{ GETLEN("CHARSET_ENCODING "), 0, NULL, 1, {&charset_enc} },
|
||||
{ GETLEN("FONT_ASCENT "), 0, " %hd", 1, {&fmet.ascender} },
|
||||
{ GETLEN("FONT_DESCENT "), 0, " %hd", 1, {&fmet.descender} },
|
||||
|
||||
/* these 2 must go in this order for post-processing */
|
||||
{ GETLEN("UNDERLINE_THICKNESS "), 0, " %hd", 1, {&fmet.underline_thickness} },
|
||||
{ GETLEN("UNDERLINE_POSITION "), 0, " %hd", 1, {&fmet.underline_position} },
|
||||
|
||||
{ GETLEN("CHARS "), MUST_SEE|IS_LAST, " %d", 1, {&nglyphs} },
|
||||
{ NULL, 0, 0 } /* end mark: name==NULL */
|
||||
};
|
||||
|
||||
static int
|
||||
handle_header(
|
||||
int len,
|
||||
char *str
|
||||
)
|
||||
{
|
||||
struct line *cl;
|
||||
char *s, *p;
|
||||
char bf[2000];
|
||||
int c;
|
||||
|
||||
#if 0
|
||||
fprintf(stderr, "line: %s\n", str);
|
||||
#endif
|
||||
for(cl = header; cl->name != 0; cl++) {
|
||||
if(strncmp(str, cl->name, cl->namelen))
|
||||
continue;
|
||||
#if 0
|
||||
fprintf(stderr, "match: %s\n", cl->name);
|
||||
#endif
|
||||
if(cl->flags & IS_SEEN) {
|
||||
if(cl->flags & ALLOW_REPEAT)
|
||||
continue;
|
||||
|
||||
fprintf(stderr, "**** input line %d redefines the property %s\n", lineno, cl->name);
|
||||
exit(1);
|
||||
}
|
||||
cl->flags |= IS_SEEN;
|
||||
if(cl->fmt == 0) {
|
||||
if(len - cl->namelen + 1 > sizeof bf)
|
||||
len = sizeof bf; /* cut it down */
|
||||
|
||||
s = bf; /* a temporary buffer to extract the value */
|
||||
|
||||
/* skip until a quote */
|
||||
for(p = str+cl->namelen; len!=0 && (c = *p)!=0; p++, len--) {
|
||||
if(c == '"') {
|
||||
p++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(; len!=0 && (c = *p)!=0; p++, len--) {
|
||||
if(c == '"') {
|
||||
c = *++p;
|
||||
if(c == '"')
|
||||
*s++ = c;
|
||||
else
|
||||
break;
|
||||
} else
|
||||
*s++ = c;
|
||||
}
|
||||
*s = 0; /* end of line */
|
||||
|
||||
*((char **)(cl->vp[0])) = dupcnstring(bf, s-bf);
|
||||
} else {
|
||||
c = sscanf(str+cl->namelen, cl->fmt, cl->vp[0], cl->vp[1], cl->vp[2], cl->vp[3]);
|
||||
if(c != cl->nvals) {
|
||||
fprintf(stderr, "**** property %s at input line %d must have %d arguments\n",
|
||||
cl->name, lineno, cl->nvals);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
if(cl->flags & IS_LAST)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse the description of the glyphs
|
||||
*/
|
||||
|
||||
static int
|
||||
handle_glyphs(
|
||||
int len,
|
||||
char *str
|
||||
)
|
||||
{
|
||||
static int inbmap=0;
|
||||
static char *bmap;
|
||||
static int xsz, ysz, xoff, yoff;
|
||||
static int curln;
|
||||
int i, c;
|
||||
char *p, *plim, *psz;
|
||||
|
||||
if(!LENCMP(str, "ENDFONT")) {
|
||||
if(curgl < nglyphs) {
|
||||
fprintf(stderr, "**** unexpected end of font file after %d glyphs\n", curgl);
|
||||
exit(1);
|
||||
} else
|
||||
return 1;
|
||||
}
|
||||
if(curgl >= nglyphs) {
|
||||
fprintf(stderr, "**** file contains more glyphs than advertised (%d)\n", nglyphs);
|
||||
exit(1);
|
||||
}
|
||||
if(!LENCMP(str, "STARTCHAR")) {
|
||||
/* sizeof will count \0 instead of ' ' */
|
||||
for(i=sizeof("STARTCHAR"); str[i] == ' '; i++)
|
||||
{}
|
||||
|
||||
glyphs[curgl].name = strdup(str + i);
|
||||
if(glyphs[curgl].name == 0) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
} else if(!LENCMP(str, "ENCODING")) {
|
||||
if(sscanf(str, "ENCODING %d", &fontenc[curgl])!=1) {
|
||||
fprintf(stderr,"**** weird ENCODING statement at line %d\n", lineno);
|
||||
exit(1);
|
||||
}
|
||||
if(fontenc[curgl] == -1) /* compatibility format */
|
||||
sscanf(str, "ENCODING -1 %d", &fontenc[curgl]);
|
||||
if(fontenc[curgl] > maxenc)
|
||||
maxenc = fontenc[curgl];
|
||||
} else if(!LENCMP(str, "DWIDTH")) {
|
||||
if(sscanf(str, "DWIDTH %d %d", &xsz, &ysz)!=2) {
|
||||
fprintf(stderr,"**** weird DWIDTH statement at line %d\n", lineno);
|
||||
exit(1);
|
||||
}
|
||||
glyphs[curgl].width = xsz*scale;
|
||||
} else if(!LENCMP(str, "BBX")) {
|
||||
if(sscanf(str, "BBX %d %d %d %d", &xsz, &ysz, &xoff, &yoff)!=4) {
|
||||
fprintf(stderr,"**** weird BBX statement at line %d\n", lineno);
|
||||
exit(1);
|
||||
}
|
||||
bmap=malloc(xsz*ysz);
|
||||
if(bmap==0) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
glyphs[curgl].lsb = -xoff*scale;
|
||||
glyphs[curgl].xMin = -xoff*scale;
|
||||
glyphs[curgl].xMax = (xsz-xoff)*scale;
|
||||
glyphs[curgl].yMin = -yoff*scale;
|
||||
glyphs[curgl].yMax = (ysz-xoff)*scale;
|
||||
} else if(!LENCMP(str, "BITMAP")) {
|
||||
inbmap=1;
|
||||
curln=ysz-1; /* the lowest line has index 0 */
|
||||
} else if(!LENCMP(str, "ENDCHAR")) {
|
||||
inbmap=0;
|
||||
if(bmap) {
|
||||
glyphs[curgl].lastentry = 0;
|
||||
glyphs[curgl].path = 0;
|
||||
glyphs[curgl].entries = 0;
|
||||
bmp_outline(&glyphs[curgl], scale, bmap, xsz, ysz, xoff, yoff);
|
||||
free(bmap);
|
||||
/* remember in a static table or it will be erased */
|
||||
glpaths[curgl] = glyphs[curgl].entries;
|
||||
glyphs[curgl].entries = 0;
|
||||
|
||||
if(glpaths[curgl])
|
||||
glyphs[curgl].ttf_pathlen = 1;
|
||||
else
|
||||
glyphs[curgl].ttf_pathlen = 0;
|
||||
}
|
||||
curgl++;
|
||||
} else if(inbmap) {
|
||||
if(curln<0) {
|
||||
fprintf(stderr,"**** bitmap is longer than %d lines at line %d\n", ysz, lineno);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
i=0;
|
||||
p=&bmap[curln*xsz]; psz=p+xsz;
|
||||
while(i<len) {
|
||||
c=str[i++];
|
||||
if(!isxdigit(c)) {
|
||||
fprintf(stderr,"**** non-hex digit in bitmap at line %d\n", lineno);
|
||||
exit(1);
|
||||
}
|
||||
if(c<='9')
|
||||
c-='0';
|
||||
else
|
||||
c= tolower(c)-'a'+10;
|
||||
|
||||
for(plim=p+4; p<psz && p<plim; c<<=1)
|
||||
*p++ = (( c & 0x08 )!=0);
|
||||
}
|
||||
if(p<psz) {
|
||||
fprintf(stderr,"**** bitmap line is too short at line %d\n", lineno);
|
||||
exit(1);
|
||||
}
|
||||
curln--;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read all the possible information about the glyphs
|
||||
*/
|
||||
|
||||
static void
|
||||
readglyphs(
|
||||
GLYPH *glyph_list
|
||||
)
|
||||
{
|
||||
int i;
|
||||
GLYPH *g;
|
||||
|
||||
if(got_glyphs)
|
||||
return;
|
||||
|
||||
/* pass them to handle_glyphs() through statics */
|
||||
glyphs = glyph_list;
|
||||
curgl = 2; /* skip the empty glyph and .notdef */
|
||||
|
||||
/* initialize the empty glyph and .notdef */
|
||||
|
||||
for(i=0; i<2; i++) {
|
||||
g = &glyphs[i];
|
||||
g->lsb = 0;
|
||||
g->width = fmet.bbox[2];
|
||||
g->xMin = 0;
|
||||
g->yMin = 0;
|
||||
}
|
||||
g = &glyphs[0];
|
||||
g->name = ".notdef";
|
||||
g->xMax = fmet.bbox[2]*4/5;
|
||||
g->yMax = fmet.bbox[3]*4/5;
|
||||
g->entries = g->path = g->lastentry = 0;
|
||||
/* make it look as a black square */
|
||||
fg_rmoveto(g, 0.0, 0.0);
|
||||
fg_rlineto(g, 0.0, (double)g->yMax);
|
||||
fg_rlineto(g, (double)g->xMax, (double)g->yMax);
|
||||
fg_rlineto(g, (double)g->xMax, 0.0);
|
||||
fg_rlineto(g, 0.0, 0.0);
|
||||
g_closepath(g);
|
||||
glpaths[0] = g->entries;
|
||||
g->entries = 0;
|
||||
g->ttf_pathlen = 4;
|
||||
|
||||
g = &glyphs[1];
|
||||
g->name = ".null";
|
||||
g->xMax = g->yMax = 0;
|
||||
g->ttf_pathlen = 0;
|
||||
|
||||
if(readfile(bdf_file, handle_glyphs) < 0) {
|
||||
fprintf(stderr, "**** file does not contain the ENDFONT line\n");
|
||||
exit(1);
|
||||
}
|
||||
got_glyphs = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Open font and prepare to return information to the main driver.
|
||||
* May print error and warning messages.
|
||||
* Exit on error.
|
||||
*/
|
||||
|
||||
static void
|
||||
openfont(
|
||||
char *fname,
|
||||
char *arg /* unused now */
|
||||
)
|
||||
{
|
||||
struct line *cl;
|
||||
int i, l;
|
||||
|
||||
if ((bdf_file = fopen(fname, "r")) == NULL) {
|
||||
fprintf(stderr, "**** Cannot open file '%s'\n", fname);
|
||||
exit(1);
|
||||
} else {
|
||||
WARNING_2 fprintf(stderr, "Processing file %s\n", fname);
|
||||
}
|
||||
|
||||
lineno = 1;
|
||||
|
||||
for(cl = header; cl->name != 0; cl++)
|
||||
cl->flags &= ~IS_SEEN;
|
||||
if(readfile(bdf_file, handle_header) < 0) {
|
||||
fprintf(stderr, "**** file does not contain the CHARS definition\n");
|
||||
exit(1);
|
||||
}
|
||||
for(cl = header; cl->name != 0; cl++) {
|
||||
if( (cl->flags & MUST_SEE) && !(cl->flags & IS_SEEN) ) {
|
||||
fprintf(stderr, "**** mandatory property %sis not found in the input line\n",
|
||||
cl->name); /* cl->name has a space at the end */
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* set a few defaults */
|
||||
if( !(cl->flags & IS_SEEN) ) {
|
||||
if(cl->vp[0] == &fmet.underline_thickness) {
|
||||
fmet.underline_thickness = 1;
|
||||
} else if(cl->vp[0] == &fmet.underline_position) {
|
||||
fmet.underline_position = fmet.bbox[1] + fmet.underline_thickness
|
||||
- (pixel_size - fmet.bbox[3]);
|
||||
} else if(cl->vp[0] == &fmet.ascender) {
|
||||
fmet.ascender = fmet.bbox[2] + fmet.bbox[0];
|
||||
} else if(cl->vp[0] == &fmet.descender) {
|
||||
fmet.descender = fmet.bbox[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nglyphs += 2; /* add empty glyph and .notdef */
|
||||
|
||||
/* postprocessing to compensate for the differences in the metric formats */
|
||||
fmet.bbox[2] += fmet.bbox[0];
|
||||
fmet.bbox[3] += fmet.bbox[1];
|
||||
|
||||
scale = 1000/pixel_size; /* XXX ? */
|
||||
if(scale*pixel_size < 950) {
|
||||
scale = 1;
|
||||
scale_external = 1;
|
||||
fmet.units_per_em = pixel_size;
|
||||
} else {
|
||||
scale_external = 0;
|
||||
fmet.units_per_em = scale*pixel_size;
|
||||
|
||||
fmet.underline_position *= scale;
|
||||
fmet.underline_thickness *= scale;
|
||||
fmet.ascender *= scale;
|
||||
fmet.descender *= scale;
|
||||
for(i=0; i<4; i++)
|
||||
fmet.bbox[i] *= scale;
|
||||
}
|
||||
|
||||
fmet.italic_angle = 0.0;
|
||||
if(spacing == 0 /* possibly an old font */
|
||||
|| toupper(spacing[0]) != 'P') /* or anything non-proportional */
|
||||
fmet.is_fixed_pitch = 1;
|
||||
else
|
||||
fmet.is_fixed_pitch = 0;
|
||||
|
||||
if(fmet.name_copyright==NULL)
|
||||
fmet.name_copyright = "";
|
||||
|
||||
/* create the full name */
|
||||
l = strlen(fmet.name_family)
|
||||
+ (fmet.name_style? strlen(fmet.name_style) : 0)
|
||||
+ (fnwidth? strlen(fnwidth) : 0)
|
||||
+ strlen("Oblique") + 1;
|
||||
|
||||
if(( fmet.name_full = malloc(l) )==NULL) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
strcpy(fmet.name_full, fmet.name_family);
|
||||
if(fnwidth && strcmp(fnwidth, "Normal")) {
|
||||
strcat(fmet.name_full, fnwidth);
|
||||
}
|
||||
if(fmet.name_style && strcmp(fmet.name_style, "Medium")) {
|
||||
strcat(fmet.name_full, fmet.name_style);
|
||||
}
|
||||
switch(toupper(slant[0])) {
|
||||
case 'O':
|
||||
strcat(fmet.name_full, "Oblique");
|
||||
break;
|
||||
case 'I':
|
||||
strcat(fmet.name_full, "Italic");
|
||||
break;
|
||||
}
|
||||
|
||||
fmet.name_ps = fmet.name_full;
|
||||
fmet.name_version = "1.0";
|
||||
|
||||
if(charset_reg && charset_enc
|
||||
&& !strcmp(charset_reg, "iso10646") && !strcmp(charset_enc, "1"))
|
||||
is_unicode = 1;
|
||||
|
||||
if(( fontenc = calloc(nglyphs, sizeof *fontenc) )==NULL) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
for(i=0; i<nglyphs; i++)
|
||||
fontenc[i] = -1;
|
||||
if(( glpaths = calloc(nglyphs, sizeof *glpaths) )==NULL) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Close font.
|
||||
* Exit on error.
|
||||
*/
|
||||
|
||||
static void
|
||||
closefont(
|
||||
void
|
||||
)
|
||||
{
|
||||
if(fclose(bdf_file) < 0) {
|
||||
WARNING_1 fprintf(stderr, "Errors when closing the font file, ignored\n");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the number of glyphs in font.
|
||||
*/
|
||||
|
||||
static int
|
||||
getnglyphs (
|
||||
void
|
||||
)
|
||||
{
|
||||
return nglyphs;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the names of the glyphs.
|
||||
* Returns 0 if the names were assigned, non-zero if the font
|
||||
* provides no glyph names.
|
||||
*/
|
||||
|
||||
static int
|
||||
glnames(
|
||||
GLYPH *glyph_list
|
||||
)
|
||||
{
|
||||
readglyphs(glyph_list);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the original encoding of the font.
|
||||
* Returns 1 for if the original encoding is Unicode, 2 if the
|
||||
* original encoding is other 16-bit, 0 if 8-bit.
|
||||
*/
|
||||
|
||||
static int
|
||||
glenc(
|
||||
GLYPH *glyph_list,
|
||||
int *encoding,
|
||||
int *unimap
|
||||
)
|
||||
{
|
||||
int i, douni, e;
|
||||
|
||||
if(is_unicode || forcemap)
|
||||
douni = 1;
|
||||
else
|
||||
douni = 0;
|
||||
|
||||
for(i=0; i<nglyphs; i++) {
|
||||
e = fontenc[i];
|
||||
if(douni)
|
||||
e = unicode_rev_lookup(e);
|
||||
if(e>=0 && e<ENCTABSZ && encoding[e] == -1)
|
||||
encoding[e] = i;
|
||||
}
|
||||
|
||||
if(is_unicode)
|
||||
return 1;
|
||||
else if(maxenc > 255)
|
||||
return 2;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the font metrics
|
||||
*/
|
||||
static void
|
||||
fnmetrics(
|
||||
struct font_metrics *fm
|
||||
)
|
||||
{
|
||||
*fm = fmet;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the path of contrours for a glyph.
|
||||
*/
|
||||
|
||||
static void
|
||||
glpath(
|
||||
int glyphno,
|
||||
GLYPH *glyf_list
|
||||
)
|
||||
{
|
||||
readglyphs(glyf_list);
|
||||
glyf_list[glyphno].entries = glpaths[glyphno];
|
||||
glpaths[glyphno] = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the kerning data.
|
||||
*/
|
||||
|
||||
static void
|
||||
kerning(
|
||||
GLYPH *glyph_list
|
||||
)
|
||||
{
|
||||
return; /* no kerning in BDF */
|
||||
}
|
||||
2633
pdf/lib/ttf2ufm/src/bitmap.c
Executable file
2633
pdf/lib/ttf2ufm/src/bitmap.c
Executable file
File diff suppressed because it is too large
Load Diff
24
pdf/lib/ttf2ufm/src/byteorder.h
Executable file
24
pdf/lib/ttf2ufm/src/byteorder.h
Executable file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* see COPYRIGHT
|
||||
*/
|
||||
|
||||
/* This defines the macroes ntohs and ntohl, which convert short and long
|
||||
ints from network order (used on 68000 chips, and in TrueType font
|
||||
files) to whatever order your computer uses. #define _BIG_ENDIAN or not
|
||||
to control which set of definitions apply. If you don't know, try both. If
|
||||
you have a peculiar machine you're on your own.
|
||||
*/
|
||||
|
||||
#if defined(_BIG_ENDIAN)
|
||||
#define ntohl(x) (x)
|
||||
#define ntohs(x) (x)
|
||||
#else
|
||||
#define ntohs(x) \
|
||||
((USHORT)((((USHORT)(x) & 0x00ff) << 8) | \
|
||||
(((USHORT)(x) & 0xff00) >> 8)))
|
||||
#define ntohl(x) \
|
||||
((ULONG)((((ULONG)(x) & 0x000000ffU) << 24) | \
|
||||
(((ULONG)(x) & 0x0000ff00U) << 8) | \
|
||||
(((ULONG)(x) & 0x00ff0000U) >> 8) | \
|
||||
(((ULONG)(x) & 0xff000000U) >> 24)))
|
||||
#endif
|
||||
8
pdf/lib/ttf2ufm/src/cygbuild.sh
Executable file
8
pdf/lib/ttf2ufm/src/cygbuild.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
:
|
||||
# this file should be run from Cygnus BASH
|
||||
# file to build ttf2pt1 with Cygnus GCC on Windows
|
||||
# don't forget to copy CYGWIN1.DLL into C:\WINDOWS
|
||||
|
||||
gcc -o ttf2pt1 -DWINDOWS ttf2pt1.c pt1.c t1asm.c ttf.c -lm
|
||||
gcc -o t1asm -DWINDOWS -DSTANDALONE t1asm.c
|
||||
|
||||
47
pdf/lib/ttf2ufm/src/encodings/README
Executable file
47
pdf/lib/ttf2ufm/src/encodings/README
Executable file
@@ -0,0 +1,47 @@
|
||||
Sergey A. Babkin
|
||||
<babkin@bellatlantic.net> or <sab123@hotmail.com>
|
||||
(Do not edit this file, it is generated from README.html!!!)
|
||||
|
||||
The Translation Tables
|
||||
----------------------
|
||||
|
||||
These translation tables are used to translate the Type 1 fonts between
|
||||
different encodings of the same language.
|
||||
|
||||
The file names are supposed to have the suffix .tbl. Each file
|
||||
describes one encoding, and all the tables for a given language
|
||||
are stored in the same directory.
|
||||
|
||||
The file format is quite simple: just a sequence of rows in
|
||||
format
|
||||
|
||||
<name> <decimal code>
|
||||
|
||||
The names do not have to conform to any standard, just the same
|
||||
glyph must have the same name in all the files for a given language.
|
||||
|
||||
Not all the codes need to be described in the tables, the codes that
|
||||
are not mentioned in the tables are left untranslated. So a file
|
||||
of zero length may be used in case when no translation is neccessary.
|
||||
|
||||
The translation changes only the encoding table of the font and does not
|
||||
rename the glyphs in the font file.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
The directory `russian' contains the tables for some encodings of the
|
||||
Russian language: KOI-8, IBM CP-866, IBM CP-1251 and just for fun
|
||||
ISO-8859/5 (nobody uses it anyways). The tables describe both russian
|
||||
letters and table graphics characters (except for CP-1251 for which
|
||||
the table graphics is not defined, so the table graphics portion for
|
||||
it is just copied from KOI-8).
|
||||
|
||||
The file for ISO-8859/1 is just a copy of file for KOI-8. It is neccessary
|
||||
because Netscape has rather weird ideas about the documents in
|
||||
KOI-8 encoding. The common way to fool Netscape is to set the KOI-8
|
||||
fonts for the ISO-8859/1 encoding and set the default encoding
|
||||
in Netscape to 8859/1.
|
||||
|
||||
The directory `latin1' contains an empty table for ISO-8859/1
|
||||
because it does not need any translation.
|
||||
81
pdf/lib/ttf2ufm/src/encodings/README.html
Executable file
81
pdf/lib/ttf2ufm/src/encodings/README.html
Executable file
@@ -0,0 +1,81 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
The INSTALLATION GUIDE
|
||||
</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
Sergey A. Babkin
|
||||
<br>
|
||||
<A HREF="mailto:babkin@bellatlantic.net">
|
||||
<babkin@bellatlantic.net></A> or <A HREF="mailto:sab123@hotmail.com"><sab123@hotmail.com></A>
|
||||
<p>
|
||||
<!
|
||||
(Do not edit this file, it is generated from README.html!!!)
|
||||
>
|
||||
|
||||
<H3>
|
||||
The Translation Tables
|
||||
</H3>
|
||||
<!
|
||||
----------------------
|
||||
>
|
||||
|
||||
These translation tables are used to translate the Type 1 fonts between
|
||||
different encodings of the same language.
|
||||
<p>
|
||||
|
||||
The file names are supposed to have the suffix <tt>.tbl</tt>. Each file
|
||||
describes one encoding, and all the tables for a given language
|
||||
are stored in the same directory.
|
||||
<p>
|
||||
|
||||
The file format is quite simple: just a sequence of rows in
|
||||
format
|
||||
<p>
|
||||
|
||||
<tt>
|
||||
<name> <decimal code>
|
||||
</tt>
|
||||
<p>
|
||||
|
||||
The names do not have to conform to any standard, just the same
|
||||
glyph must have the same name in all the files for a given language.
|
||||
<p>
|
||||
|
||||
Not all the codes need to be described in the tables, the codes that
|
||||
are not mentioned in the tables are left untranslated. So a file
|
||||
of zero length may be used in case when no translation is neccessary.
|
||||
<p>
|
||||
|
||||
The translation changes only the encoding table of the font and does not
|
||||
rename the glyphs in the font file.
|
||||
<p>
|
||||
|
||||
<H3>
|
||||
Examples
|
||||
</H3>
|
||||
<!
|
||||
--------
|
||||
>
|
||||
|
||||
The directory `russian' contains the tables for some encodings of the
|
||||
Russian language: KOI-8, IBM CP-866, IBM CP-1251 and just for fun
|
||||
ISO-8859/5 (nobody uses it anyways). The tables describe both russian
|
||||
letters and table graphics characters (except for CP-1251 for which
|
||||
the table graphics is not defined, so the table graphics portion for
|
||||
it is just copied from KOI-8).
|
||||
<p>
|
||||
|
||||
The file for ISO-8859/1 is just a copy of file for KOI-8. It is neccessary
|
||||
because Netscape has rather weird ideas about the documents in
|
||||
KOI-8 encoding. The common way to fool Netscape is to set the KOI-8
|
||||
fonts for the ISO-8859/1 encoding and set the default encoding
|
||||
in Netscape to 8859/1.
|
||||
<p>
|
||||
|
||||
The directory `latin1' contains an empty table for ISO-8859/1
|
||||
because it does not need any translation.
|
||||
<p>
|
||||
</BODY>
|
||||
</HTML>
|
||||
0
pdf/lib/ttf2ufm/src/encodings/adobestd/adobe-std.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/adobestd/adobe-std.tbl
Executable file
3
pdf/lib/ttf2ufm/src/encodings/bulgarian/README
Executable file
3
pdf/lib/ttf2ufm/src/encodings/bulgarian/README
Executable file
@@ -0,0 +1,3 @@
|
||||
These files are copies of thos provided for the language "cyrillic"
|
||||
and are provided for compatibility purposes only, please
|
||||
use the language "cyrillic" instead.
|
||||
4
pdf/lib/ttf2ufm/src/encodings/bulgarian/encodings.alias
Executable file
4
pdf/lib/ttf2ufm/src/encodings/bulgarian/encodings.alias
Executable file
@@ -0,0 +1,4 @@
|
||||
# alias real-name
|
||||
iso8859-1 koi8-r
|
||||
windows-1251 ibm-1251
|
||||
cp-866 ibm-866
|
||||
127
pdf/lib/ttf2ufm/src/encodings/bulgarian/ibm-1251.tbl
Executable file
127
pdf/lib/ttf2ufm/src/encodings/bulgarian/ibm-1251.tbl
Executable file
@@ -0,0 +1,127 @@
|
||||
cyr_DJE 128
|
||||
cyr_GJE 129
|
||||
quotesinglbase 130
|
||||
cyr_gje 131
|
||||
quotedblbase 132
|
||||
ellipsis 133
|
||||
dagger 134
|
||||
daggerdbl 135
|
||||
Euro 136
|
||||
perthousand 137
|
||||
cyr_LJE 138
|
||||
guilsinglleft 139
|
||||
cyr_NJE 140
|
||||
cyr_KJE 141
|
||||
cyr_TSHE 142
|
||||
cyr_DZHE 143
|
||||
cyr_dje 144
|
||||
quotesinglleft 145
|
||||
quotesinglright 146
|
||||
quotedblleft 147
|
||||
quotedblright 148
|
||||
bullet 149
|
||||
endash 150
|
||||
emdash 151
|
||||
trademark 153
|
||||
cyr_lje 154
|
||||
guilsinglright 155
|
||||
cyr_nje 156
|
||||
cyr_kje 157
|
||||
cyr_tshe 158
|
||||
cyr_dzhe 159
|
||||
nbspace 160
|
||||
cyr_SHORT_U 161
|
||||
cyr_short_u 162
|
||||
cyr_JE 163
|
||||
currency 164
|
||||
cyr_GHE_UPTURN 165
|
||||
brokenbar 166
|
||||
section 167
|
||||
cyr_IO 168
|
||||
copyright 169
|
||||
cyr_UKRAINIAN_IE 170
|
||||
guillemotleft 171
|
||||
notsign 172
|
||||
hyphen 173
|
||||
registered 174
|
||||
cyr_YI 175
|
||||
degree 176
|
||||
plusminus 177
|
||||
cyr_BYELORUSSIAN_UKRAINIAN_I 178
|
||||
cyr_byelorussian_ukrainian_i 179
|
||||
cyr_ghe_upturn 180
|
||||
mu 181
|
||||
paragraph 182
|
||||
periodcentered 183
|
||||
cyr_io 184
|
||||
numero 185
|
||||
cyr_ukrainian_ie 186
|
||||
guillemotright 187
|
||||
cyr_je 188
|
||||
cyr_DZE 189
|
||||
cyr_dze 190
|
||||
cyr_yi 191
|
||||
cyr_A 192
|
||||
cyr_BE 193
|
||||
cyr_VE 194
|
||||
cyr_GHE 195
|
||||
cyr_DE 196
|
||||
cyr_IE 197
|
||||
cyr_ZHE 198
|
||||
cyr_ZE 199
|
||||
cyr_I 200
|
||||
cyr_SHORT_I 201
|
||||
cyr_KA 202
|
||||
cyr_EL 203
|
||||
cyr_EM 204
|
||||
cyr_EN 205
|
||||
cyr_O 206
|
||||
cyr_PE 207
|
||||
cyr_ER 208
|
||||
cyr_ES 209
|
||||
cyr_TE 210
|
||||
cyr_U 211
|
||||
cyr_EF 212
|
||||
cyr_HA 213
|
||||
cyr_TSE 214
|
||||
cyr_CHE 215
|
||||
cyr_SHA 216
|
||||
cyr_SHCHA 217
|
||||
cyr_HARD_SIGN 218
|
||||
cyr_YERU 219
|
||||
cyr_SOFT_SIGN 220
|
||||
cyr_E 221
|
||||
cyr_YU 222
|
||||
cyr_YA 223
|
||||
cyr_a 224
|
||||
cyr_be 225
|
||||
cyr_ve 226
|
||||
cyr_ghe 227
|
||||
cyr_de 228
|
||||
cyr_ie 229
|
||||
cyr_zhe 230
|
||||
cyr_ze 231
|
||||
cyr_i 232
|
||||
cyr_short_i 233
|
||||
cyr_ka 234
|
||||
cyr_el 235
|
||||
cyr_em 236
|
||||
cyr_en 237
|
||||
cyr_o 238
|
||||
cyr_pe 239
|
||||
cyr_er 240
|
||||
cyr_es 241
|
||||
cyr_te 242
|
||||
cyr_u 243
|
||||
cyr_ef 244
|
||||
cyr_ha 245
|
||||
cyr_tse 246
|
||||
cyr_che 247
|
||||
cyr_sha 248
|
||||
cyr_shcha 249
|
||||
cyr_hard_sign 250
|
||||
cyr_yeru 251
|
||||
cyr_soft_sign 252
|
||||
cyr_e 253
|
||||
cyr_yu 254
|
||||
cyr_ya 255
|
||||
128
pdf/lib/ttf2ufm/src/encodings/bulgarian/ibm-866.tbl
Executable file
128
pdf/lib/ttf2ufm/src/encodings/bulgarian/ibm-866.tbl
Executable file
@@ -0,0 +1,128 @@
|
||||
cyr_A 128
|
||||
cyr_BE 129
|
||||
cyr_CHE 151
|
||||
cyr_DE 132
|
||||
cyr_E 157
|
||||
cyr_EF 148
|
||||
cyr_EL 139
|
||||
cyr_EM 140
|
||||
cyr_EN 141
|
||||
cyr_ER 144
|
||||
cyr_ES 145
|
||||
cyr_GHE 131
|
||||
cyr_HA 149
|
||||
cyr_HARD_SIGN 154
|
||||
cyr_I 136
|
||||
cyr_IE 133
|
||||
cyr_KA 138
|
||||
cyr_O 142
|
||||
cyr_PE 143
|
||||
cyr_SHA 152
|
||||
cyr_SHCHA 153
|
||||
cyr_SHORT_I 137
|
||||
cyr_SOFT_SIGN 156
|
||||
cyr_TE 146
|
||||
cyr_TSE 150
|
||||
cyr_U 147
|
||||
cyr_VE 130
|
||||
cyr_YA 159
|
||||
cyr_YERU 155
|
||||
cyr_IO 240
|
||||
cyr_YU 158
|
||||
cyr_ZE 135
|
||||
cyr_ZHE 134
|
||||
cyr_a 160
|
||||
cyr_be 161
|
||||
cyr_che 231
|
||||
cyr_de 164
|
||||
cyr_e 237
|
||||
cyr_ef 228
|
||||
cyr_el 171
|
||||
cyr_em 172
|
||||
cyr_en 173
|
||||
cyr_er 224
|
||||
cyr_es 225
|
||||
graphic_100pc 219
|
||||
graphic_25pc 178
|
||||
graphic_50pc 177
|
||||
graphic_75pc 176
|
||||
graphic_LD 187
|
||||
graphic_LR 205
|
||||
graphic_LRD 203
|
||||
graphic_LRT 202
|
||||
graphic_LRTD 206
|
||||
graphic_LRd 209
|
||||
graphic_LRt 207
|
||||
graphic_LRtd 216
|
||||
graphic_LT 188
|
||||
graphic_LTD 185
|
||||
graphic_Ld 184
|
||||
graphic_Lt 190
|
||||
graphic_Ltd 181
|
||||
graphic_RD 201
|
||||
graphic_RT 200
|
||||
graphic_RTD 204
|
||||
graphic_Rd 213
|
||||
graphic_Rt 212
|
||||
graphic_Rtd 198
|
||||
graphic_TD 186
|
||||
copyright 252
|
||||
degree 248
|
||||
graphic_dintegral 245
|
||||
graphic_divide 246
|
||||
graphic_equal 247
|
||||
graphic_fatdot 249
|
||||
graphic_ge 242
|
||||
graphic_lD 183
|
||||
graphic_lT 189
|
||||
graphic_lTD 182
|
||||
graphic_ld 191
|
||||
graphic_le 243
|
||||
graphic_leandot 250
|
||||
graphic_lefthalf 221
|
||||
graphic_lowerhalf 220
|
||||
graphic_lr 196
|
||||
graphic_lrD 210
|
||||
graphic_lrT 208
|
||||
graphic_lrTD 215
|
||||
graphic_lrd 194
|
||||
graphic_lrt 193
|
||||
graphic_lrtd 197
|
||||
graphic_lt 217
|
||||
graphic_ltd 180
|
||||
graphic_power2 253
|
||||
graphic_rD 214
|
||||
graphic_rT 211
|
||||
graphic_rTD 199
|
||||
graphic_rd 218
|
||||
graphic_righthalf 222
|
||||
graphic_root 251
|
||||
graphic_rt 192
|
||||
graphic_rtd 195
|
||||
nbspace 255
|
||||
graphic_square 254
|
||||
graphic_td 179
|
||||
graphic_tintegral 244
|
||||
graphic_upperhalf 223
|
||||
cyr_ghe 163
|
||||
cyr_ha 229
|
||||
cyr_hard_sign 234
|
||||
cyr_i 168
|
||||
cyr_ie 165
|
||||
cyr_ka 170
|
||||
cyr_o 174
|
||||
cyr_pe 175
|
||||
cyr_sha 232
|
||||
cyr_shcha 233
|
||||
cyr_short_i 169
|
||||
cyr_soft_sign 236
|
||||
cyr_te 226
|
||||
cyr_tse 230
|
||||
cyr_u 227
|
||||
cyr_ve 162
|
||||
cyr_ya 239
|
||||
cyr_yeru 235
|
||||
cyr_io 241
|
||||
cyr_yu 238
|
||||
cyr_ze 167
|
||||
cyr_zhe 166
|
||||
127
pdf/lib/ttf2ufm/src/encodings/bulgarian/iso8859-5.tbl
Executable file
127
pdf/lib/ttf2ufm/src/encodings/bulgarian/iso8859-5.tbl
Executable file
@@ -0,0 +1,127 @@
|
||||
cyr_GHE_UPTURN 128
|
||||
cyr_ghe_upturn 129
|
||||
quotesinglbase 130
|
||||
currency 131
|
||||
quotedblbase 132
|
||||
ellipsis 133
|
||||
dagger 134
|
||||
daggerdbl 135
|
||||
Euro 136
|
||||
perthousand 137
|
||||
brokenbar 138
|
||||
guilsinglleft 139
|
||||
copyright 140
|
||||
guillemotleft 141
|
||||
notsign 142
|
||||
registered 143
|
||||
degree 144
|
||||
quotesinglleft 145
|
||||
quotesinglright 146
|
||||
quotedblleft 147
|
||||
quotedblright 148
|
||||
bullet 149
|
||||
endash 150
|
||||
emdash 151
|
||||
trademark 153
|
||||
plusminus 154
|
||||
guilsinglright 155
|
||||
mu 156
|
||||
paragraph 157
|
||||
periodcentered 158
|
||||
guillemotright 159
|
||||
nbspace 160
|
||||
cyr_IO 161
|
||||
cyr_DJE 162
|
||||
cyr_GJE 163
|
||||
cyr_UKRAINIAN_IE 164
|
||||
cyr_DZE 165
|
||||
cyr_BYELORUSSIAN_UKRAINIAN_I 166
|
||||
cyr_YI 167
|
||||
cyr_JE 168
|
||||
cyr_LJE 169
|
||||
cyr_NJE 170
|
||||
cyr_TSHE 171
|
||||
cyr_KJE 172
|
||||
hyphen 173
|
||||
cyr_SHORT_U 174
|
||||
cyr_DZHE 175
|
||||
cyr_A 176
|
||||
cyr_BE 177
|
||||
cyr_VE 178
|
||||
cyr_GHE 179
|
||||
cyr_DE 180
|
||||
cyr_IE 181
|
||||
cyr_ZHE 182
|
||||
cyr_ZE 183
|
||||
cyr_I 184
|
||||
cyr_SHORT_I 185
|
||||
cyr_KA 186
|
||||
cyr_EL 187
|
||||
cyr_EM 188
|
||||
cyr_EN 189
|
||||
cyr_O 190
|
||||
cyr_PE 191
|
||||
cyr_ER 192
|
||||
cyr_ES 193
|
||||
cyr_TE 194
|
||||
cyr_U 195
|
||||
cyr_EF 196
|
||||
cyr_HA 197
|
||||
cyr_TSE 198
|
||||
cyr_CHE 199
|
||||
cyr_SHA 200
|
||||
cyr_SHCHA 201
|
||||
cyr_HARD_SIGN 202
|
||||
cyr_YERU 203
|
||||
cyr_SOFT_SIGN 204
|
||||
cyr_E 205
|
||||
cyr_YU 206
|
||||
cyr_YA 207
|
||||
cyr_a 208
|
||||
cyr_be 209
|
||||
cyr_ve 210
|
||||
cyr_ghe 211
|
||||
cyr_de 212
|
||||
cyr_ie 213
|
||||
cyr_zhe 214
|
||||
cyr_ze 215
|
||||
cyr_i 216
|
||||
cyr_short_i 217
|
||||
cyr_ka 218
|
||||
cyr_el 219
|
||||
cyr_em 220
|
||||
cyr_en 221
|
||||
cyr_o 222
|
||||
cyr_pe 223
|
||||
cyr_er 224
|
||||
cyr_es 225
|
||||
cyr_te 226
|
||||
cyr_u 227
|
||||
cyr_ef 228
|
||||
cyr_ha 229
|
||||
cyr_tse 230
|
||||
cyr_che 231
|
||||
cyr_sha 232
|
||||
cyr_shcha 233
|
||||
cyr_hard_sign 234
|
||||
cyr_yeru 235
|
||||
cyr_soft_sign 236
|
||||
cyr_e 237
|
||||
cyr_yu 238
|
||||
cyr_ya 239
|
||||
numero 240
|
||||
cyr_io 241
|
||||
cyr_dje 242
|
||||
cyr_gje 243
|
||||
cyr_ukrainian_ie 244
|
||||
cyr_dze 245
|
||||
cyr_byelorussian_ukrainian_i 246
|
||||
cyr_yi 247
|
||||
cyr_je 248
|
||||
cyr_lje 249
|
||||
cyr_nje 250
|
||||
cyr_tshe 251
|
||||
cyr_kje 252
|
||||
section 253
|
||||
cyr_short_u 254
|
||||
cyr_dzhe 255
|
||||
128
pdf/lib/ttf2ufm/src/encodings/bulgarian/koi8-r.tbl
Executable file
128
pdf/lib/ttf2ufm/src/encodings/bulgarian/koi8-r.tbl
Executable file
@@ -0,0 +1,128 @@
|
||||
cyr_A 225
|
||||
cyr_BE 226
|
||||
cyr_CHE 254
|
||||
cyr_DE 228
|
||||
cyr_E 252
|
||||
cyr_EF 230
|
||||
cyr_EL 236
|
||||
cyr_EM 237
|
||||
cyr_EN 238
|
||||
cyr_ER 242
|
||||
cyr_ES 243
|
||||
cyr_GHE 231
|
||||
cyr_HA 232
|
||||
cyr_HARD_SIGN 255
|
||||
cyr_I 233
|
||||
cyr_IE 229
|
||||
cyr_KA 235
|
||||
cyr_O 239
|
||||
cyr_PE 240
|
||||
cyr_SHA 251
|
||||
cyr_SHCHA 253
|
||||
cyr_SHORT_I 234
|
||||
cyr_SOFT_SIGN 248
|
||||
cyr_TE 244
|
||||
cyr_TSE 227
|
||||
cyr_U 245
|
||||
cyr_VE 247
|
||||
cyr_YA 241
|
||||
cyr_YERU 249
|
||||
cyr_IO 179
|
||||
cyr_YU 224
|
||||
cyr_ZE 250
|
||||
cyr_ZHE 246
|
||||
cyr_a 193
|
||||
cyr_be 194
|
||||
cyr_che 222
|
||||
cyr_de 196
|
||||
cyr_e 220
|
||||
cyr_ef 198
|
||||
cyr_el 204
|
||||
cyr_em 205
|
||||
cyr_en 206
|
||||
cyr_er 210
|
||||
cyr_es 211
|
||||
graphic_100pc 141
|
||||
graphic_25pc 144
|
||||
graphic_50pc 145
|
||||
graphic_75pc 146
|
||||
graphic_LD 168
|
||||
graphic_LR 160
|
||||
graphic_LRD 184
|
||||
graphic_LRT 187
|
||||
graphic_LRTD 190
|
||||
graphic_LRd 182
|
||||
graphic_LRt 185
|
||||
graphic_LRtd 188
|
||||
graphic_LT 174
|
||||
graphic_LTD 181
|
||||
graphic_Ld 166
|
||||
graphic_Lt 172
|
||||
graphic_Ltd 178
|
||||
graphic_RD 165
|
||||
graphic_RT 171
|
||||
graphic_RTD 177
|
||||
graphic_Rd 162
|
||||
graphic_Rt 170
|
||||
graphic_Rtd 175
|
||||
graphic_TD 161
|
||||
copyright 191
|
||||
degree 156
|
||||
graphic_dintegral 155
|
||||
graphic_divide 159
|
||||
graphic_equal 151
|
||||
graphic_fatdot 149
|
||||
graphic_ge 153
|
||||
graphic_lD 167
|
||||
graphic_lT 173
|
||||
graphic_lTD 180
|
||||
graphic_ld 131
|
||||
graphic_le 152
|
||||
graphic_leandot 158
|
||||
graphic_lefthalf 142
|
||||
graphic_lowerhalf 140
|
||||
graphic_lr 128
|
||||
graphic_lrD 183
|
||||
graphic_lrT 186
|
||||
graphic_lrTD 189
|
||||
graphic_lrd 136
|
||||
graphic_lrt 137
|
||||
graphic_lrtd 138
|
||||
graphic_lt 133
|
||||
graphic_ltd 135
|
||||
graphic_power2 157
|
||||
graphic_rD 164
|
||||
graphic_rT 169
|
||||
graphic_rTD 176
|
||||
graphic_rd 130
|
||||
graphic_righthalf 143
|
||||
graphic_root 150
|
||||
graphic_rt 132
|
||||
graphic_rtd 134
|
||||
nbspace 154
|
||||
graphic_square 148
|
||||
graphic_td 129
|
||||
graphic_tintegral 147
|
||||
graphic_upperhalf 139
|
||||
cyr_ghe 199
|
||||
cyr_ha 200
|
||||
cyr_hard_sign 223
|
||||
cyr_i 201
|
||||
cyr_ie 197
|
||||
cyr_ka 203
|
||||
cyr_o 207
|
||||
cyr_pe 208
|
||||
cyr_sha 219
|
||||
cyr_shcha 221
|
||||
cyr_short_i 202
|
||||
cyr_soft_sign 216
|
||||
cyr_te 212
|
||||
cyr_tse 195
|
||||
cyr_u 213
|
||||
cyr_ve 215
|
||||
cyr_ya 209
|
||||
cyr_yeru 217
|
||||
cyr_io 163
|
||||
cyr_yu 192
|
||||
cyr_ze 218
|
||||
cyr_zhe 214
|
||||
4
pdf/lib/ttf2ufm/src/encodings/cyrillic/encodings.alias
Executable file
4
pdf/lib/ttf2ufm/src/encodings/cyrillic/encodings.alias
Executable file
@@ -0,0 +1,4 @@
|
||||
# alias real-name
|
||||
iso8859-1 koi8-r
|
||||
windows-1251 ibm-1251
|
||||
cp-866 ibm-866
|
||||
127
pdf/lib/ttf2ufm/src/encodings/cyrillic/ibm-1251.tbl
Executable file
127
pdf/lib/ttf2ufm/src/encodings/cyrillic/ibm-1251.tbl
Executable file
@@ -0,0 +1,127 @@
|
||||
cyr_DJE 128
|
||||
cyr_GJE 129
|
||||
quotesinglbase 130
|
||||
cyr_gje 131
|
||||
quotedblbase 132
|
||||
ellipsis 133
|
||||
dagger 134
|
||||
daggerdbl 135
|
||||
Euro 136
|
||||
perthousand 137
|
||||
cyr_LJE 138
|
||||
guilsinglleft 139
|
||||
cyr_NJE 140
|
||||
cyr_KJE 141
|
||||
cyr_TSHE 142
|
||||
cyr_DZHE 143
|
||||
cyr_dje 144
|
||||
quotesinglleft 145
|
||||
quotesinglright 146
|
||||
quotedblleft 147
|
||||
quotedblright 148
|
||||
bullet 149
|
||||
endash 150
|
||||
emdash 151
|
||||
trademark 153
|
||||
cyr_lje 154
|
||||
guilsinglright 155
|
||||
cyr_nje 156
|
||||
cyr_kje 157
|
||||
cyr_tshe 158
|
||||
cyr_dzhe 159
|
||||
nbspace 160
|
||||
cyr_SHORT_U 161
|
||||
cyr_short_u 162
|
||||
cyr_JE 163
|
||||
currency 164
|
||||
cyr_GHE_UPTURN 165
|
||||
brokenbar 166
|
||||
section 167
|
||||
cyr_IO 168
|
||||
copyright 169
|
||||
cyr_UKRAINIAN_IE 170
|
||||
guillemotleft 171
|
||||
notsign 172
|
||||
hyphen 173
|
||||
registered 174
|
||||
cyr_YI 175
|
||||
degree 176
|
||||
plusminus 177
|
||||
cyr_BYELORUSSIAN_UKRAINIAN_I 178
|
||||
cyr_byelorussian_ukrainian_i 179
|
||||
cyr_ghe_upturn 180
|
||||
mu 181
|
||||
paragraph 182
|
||||
periodcentered 183
|
||||
cyr_io 184
|
||||
numero 185
|
||||
cyr_ukrainian_ie 186
|
||||
guillemotright 187
|
||||
cyr_je 188
|
||||
cyr_DZE 189
|
||||
cyr_dze 190
|
||||
cyr_yi 191
|
||||
cyr_A 192
|
||||
cyr_BE 193
|
||||
cyr_VE 194
|
||||
cyr_GHE 195
|
||||
cyr_DE 196
|
||||
cyr_IE 197
|
||||
cyr_ZHE 198
|
||||
cyr_ZE 199
|
||||
cyr_I 200
|
||||
cyr_SHORT_I 201
|
||||
cyr_KA 202
|
||||
cyr_EL 203
|
||||
cyr_EM 204
|
||||
cyr_EN 205
|
||||
cyr_O 206
|
||||
cyr_PE 207
|
||||
cyr_ER 208
|
||||
cyr_ES 209
|
||||
cyr_TE 210
|
||||
cyr_U 211
|
||||
cyr_EF 212
|
||||
cyr_HA 213
|
||||
cyr_TSE 214
|
||||
cyr_CHE 215
|
||||
cyr_SHA 216
|
||||
cyr_SHCHA 217
|
||||
cyr_HARD_SIGN 218
|
||||
cyr_YERU 219
|
||||
cyr_SOFT_SIGN 220
|
||||
cyr_E 221
|
||||
cyr_YU 222
|
||||
cyr_YA 223
|
||||
cyr_a 224
|
||||
cyr_be 225
|
||||
cyr_ve 226
|
||||
cyr_ghe 227
|
||||
cyr_de 228
|
||||
cyr_ie 229
|
||||
cyr_zhe 230
|
||||
cyr_ze 231
|
||||
cyr_i 232
|
||||
cyr_short_i 233
|
||||
cyr_ka 234
|
||||
cyr_el 235
|
||||
cyr_em 236
|
||||
cyr_en 237
|
||||
cyr_o 238
|
||||
cyr_pe 239
|
||||
cyr_er 240
|
||||
cyr_es 241
|
||||
cyr_te 242
|
||||
cyr_u 243
|
||||
cyr_ef 244
|
||||
cyr_ha 245
|
||||
cyr_tse 246
|
||||
cyr_che 247
|
||||
cyr_sha 248
|
||||
cyr_shcha 249
|
||||
cyr_hard_sign 250
|
||||
cyr_yeru 251
|
||||
cyr_soft_sign 252
|
||||
cyr_e 253
|
||||
cyr_yu 254
|
||||
cyr_ya 255
|
||||
128
pdf/lib/ttf2ufm/src/encodings/cyrillic/ibm-866.tbl
Executable file
128
pdf/lib/ttf2ufm/src/encodings/cyrillic/ibm-866.tbl
Executable file
@@ -0,0 +1,128 @@
|
||||
cyr_A 128
|
||||
cyr_BE 129
|
||||
cyr_CHE 151
|
||||
cyr_DE 132
|
||||
cyr_E 157
|
||||
cyr_EF 148
|
||||
cyr_EL 139
|
||||
cyr_EM 140
|
||||
cyr_EN 141
|
||||
cyr_ER 144
|
||||
cyr_ES 145
|
||||
cyr_GHE 131
|
||||
cyr_HA 149
|
||||
cyr_HARD_SIGN 154
|
||||
cyr_I 136
|
||||
cyr_IE 133
|
||||
cyr_KA 138
|
||||
cyr_O 142
|
||||
cyr_PE 143
|
||||
cyr_SHA 152
|
||||
cyr_SHCHA 153
|
||||
cyr_SHORT_I 137
|
||||
cyr_SOFT_SIGN 156
|
||||
cyr_TE 146
|
||||
cyr_TSE 150
|
||||
cyr_U 147
|
||||
cyr_VE 130
|
||||
cyr_YA 159
|
||||
cyr_YERU 155
|
||||
cyr_IO 240
|
||||
cyr_YU 158
|
||||
cyr_ZE 135
|
||||
cyr_ZHE 134
|
||||
cyr_a 160
|
||||
cyr_be 161
|
||||
cyr_che 231
|
||||
cyr_de 164
|
||||
cyr_e 237
|
||||
cyr_ef 228
|
||||
cyr_el 171
|
||||
cyr_em 172
|
||||
cyr_en 173
|
||||
cyr_er 224
|
||||
cyr_es 225
|
||||
graphic_100pc 219
|
||||
graphic_25pc 178
|
||||
graphic_50pc 177
|
||||
graphic_75pc 176
|
||||
graphic_LD 187
|
||||
graphic_LR 205
|
||||
graphic_LRD 203
|
||||
graphic_LRT 202
|
||||
graphic_LRTD 206
|
||||
graphic_LRd 209
|
||||
graphic_LRt 207
|
||||
graphic_LRtd 216
|
||||
graphic_LT 188
|
||||
graphic_LTD 185
|
||||
graphic_Ld 184
|
||||
graphic_Lt 190
|
||||
graphic_Ltd 181
|
||||
graphic_RD 201
|
||||
graphic_RT 200
|
||||
graphic_RTD 204
|
||||
graphic_Rd 213
|
||||
graphic_Rt 212
|
||||
graphic_Rtd 198
|
||||
graphic_TD 186
|
||||
copyright 252
|
||||
degree 248
|
||||
graphic_dintegral 245
|
||||
graphic_divide 246
|
||||
graphic_equal 247
|
||||
graphic_fatdot 249
|
||||
graphic_ge 242
|
||||
graphic_lD 183
|
||||
graphic_lT 189
|
||||
graphic_lTD 182
|
||||
graphic_ld 191
|
||||
graphic_le 243
|
||||
graphic_leandot 250
|
||||
graphic_lefthalf 221
|
||||
graphic_lowerhalf 220
|
||||
graphic_lr 196
|
||||
graphic_lrD 210
|
||||
graphic_lrT 208
|
||||
graphic_lrTD 215
|
||||
graphic_lrd 194
|
||||
graphic_lrt 193
|
||||
graphic_lrtd 197
|
||||
graphic_lt 217
|
||||
graphic_ltd 180
|
||||
graphic_power2 253
|
||||
graphic_rD 214
|
||||
graphic_rT 211
|
||||
graphic_rTD 199
|
||||
graphic_rd 218
|
||||
graphic_righthalf 222
|
||||
graphic_root 251
|
||||
graphic_rt 192
|
||||
graphic_rtd 195
|
||||
nbspace 255
|
||||
graphic_square 254
|
||||
graphic_td 179
|
||||
graphic_tintegral 244
|
||||
graphic_upperhalf 223
|
||||
cyr_ghe 163
|
||||
cyr_ha 229
|
||||
cyr_hard_sign 234
|
||||
cyr_i 168
|
||||
cyr_ie 165
|
||||
cyr_ka 170
|
||||
cyr_o 174
|
||||
cyr_pe 175
|
||||
cyr_sha 232
|
||||
cyr_shcha 233
|
||||
cyr_short_i 169
|
||||
cyr_soft_sign 236
|
||||
cyr_te 226
|
||||
cyr_tse 230
|
||||
cyr_u 227
|
||||
cyr_ve 162
|
||||
cyr_ya 239
|
||||
cyr_yeru 235
|
||||
cyr_io 241
|
||||
cyr_yu 238
|
||||
cyr_ze 167
|
||||
cyr_zhe 166
|
||||
127
pdf/lib/ttf2ufm/src/encodings/cyrillic/iso8859-5.tbl
Executable file
127
pdf/lib/ttf2ufm/src/encodings/cyrillic/iso8859-5.tbl
Executable file
@@ -0,0 +1,127 @@
|
||||
cyr_GHE_UPTURN 128
|
||||
cyr_ghe_upturn 129
|
||||
quotesinglbase 130
|
||||
currency 131
|
||||
quotedblbase 132
|
||||
ellipsis 133
|
||||
dagger 134
|
||||
daggerdbl 135
|
||||
Euro 136
|
||||
perthousand 137
|
||||
brokenbar 138
|
||||
guilsinglleft 139
|
||||
copyright 140
|
||||
guillemotleft 141
|
||||
notsign 142
|
||||
registered 143
|
||||
degree 144
|
||||
quotesinglleft 145
|
||||
quotesinglright 146
|
||||
quotedblleft 147
|
||||
quotedblright 148
|
||||
bullet 149
|
||||
endash 150
|
||||
emdash 151
|
||||
trademark 153
|
||||
plusminus 154
|
||||
guilsinglright 155
|
||||
mu 156
|
||||
paragraph 157
|
||||
periodcentered 158
|
||||
guillemotright 159
|
||||
nbspace 160
|
||||
cyr_IO 161
|
||||
cyr_DJE 162
|
||||
cyr_GJE 163
|
||||
cyr_UKRAINIAN_IE 164
|
||||
cyr_DZE 165
|
||||
cyr_BYELORUSSIAN_UKRAINIAN_I 166
|
||||
cyr_YI 167
|
||||
cyr_JE 168
|
||||
cyr_LJE 169
|
||||
cyr_NJE 170
|
||||
cyr_TSHE 171
|
||||
cyr_KJE 172
|
||||
hyphen 173
|
||||
cyr_SHORT_U 174
|
||||
cyr_DZHE 175
|
||||
cyr_A 176
|
||||
cyr_BE 177
|
||||
cyr_VE 178
|
||||
cyr_GHE 179
|
||||
cyr_DE 180
|
||||
cyr_IE 181
|
||||
cyr_ZHE 182
|
||||
cyr_ZE 183
|
||||
cyr_I 184
|
||||
cyr_SHORT_I 185
|
||||
cyr_KA 186
|
||||
cyr_EL 187
|
||||
cyr_EM 188
|
||||
cyr_EN 189
|
||||
cyr_O 190
|
||||
cyr_PE 191
|
||||
cyr_ER 192
|
||||
cyr_ES 193
|
||||
cyr_TE 194
|
||||
cyr_U 195
|
||||
cyr_EF 196
|
||||
cyr_HA 197
|
||||
cyr_TSE 198
|
||||
cyr_CHE 199
|
||||
cyr_SHA 200
|
||||
cyr_SHCHA 201
|
||||
cyr_HARD_SIGN 202
|
||||
cyr_YERU 203
|
||||
cyr_SOFT_SIGN 204
|
||||
cyr_E 205
|
||||
cyr_YU 206
|
||||
cyr_YA 207
|
||||
cyr_a 208
|
||||
cyr_be 209
|
||||
cyr_ve 210
|
||||
cyr_ghe 211
|
||||
cyr_de 212
|
||||
cyr_ie 213
|
||||
cyr_zhe 214
|
||||
cyr_ze 215
|
||||
cyr_i 216
|
||||
cyr_short_i 217
|
||||
cyr_ka 218
|
||||
cyr_el 219
|
||||
cyr_em 220
|
||||
cyr_en 221
|
||||
cyr_o 222
|
||||
cyr_pe 223
|
||||
cyr_er 224
|
||||
cyr_es 225
|
||||
cyr_te 226
|
||||
cyr_u 227
|
||||
cyr_ef 228
|
||||
cyr_ha 229
|
||||
cyr_tse 230
|
||||
cyr_che 231
|
||||
cyr_sha 232
|
||||
cyr_shcha 233
|
||||
cyr_hard_sign 234
|
||||
cyr_yeru 235
|
||||
cyr_soft_sign 236
|
||||
cyr_e 237
|
||||
cyr_yu 238
|
||||
cyr_ya 239
|
||||
numero 240
|
||||
cyr_io 241
|
||||
cyr_dje 242
|
||||
cyr_gje 243
|
||||
cyr_ukrainian_ie 244
|
||||
cyr_dze 245
|
||||
cyr_byelorussian_ukrainian_i 246
|
||||
cyr_yi 247
|
||||
cyr_je 248
|
||||
cyr_lje 249
|
||||
cyr_nje 250
|
||||
cyr_tshe 251
|
||||
cyr_kje 252
|
||||
section 253
|
||||
cyr_short_u 254
|
||||
cyr_dzhe 255
|
||||
128
pdf/lib/ttf2ufm/src/encodings/cyrillic/koi8-r.tbl
Executable file
128
pdf/lib/ttf2ufm/src/encodings/cyrillic/koi8-r.tbl
Executable file
@@ -0,0 +1,128 @@
|
||||
cyr_A 225
|
||||
cyr_BE 226
|
||||
cyr_CHE 254
|
||||
cyr_DE 228
|
||||
cyr_E 252
|
||||
cyr_EF 230
|
||||
cyr_EL 236
|
||||
cyr_EM 237
|
||||
cyr_EN 238
|
||||
cyr_ER 242
|
||||
cyr_ES 243
|
||||
cyr_GHE 231
|
||||
cyr_HA 232
|
||||
cyr_HARD_SIGN 255
|
||||
cyr_I 233
|
||||
cyr_IE 229
|
||||
cyr_KA 235
|
||||
cyr_O 239
|
||||
cyr_PE 240
|
||||
cyr_SHA 251
|
||||
cyr_SHCHA 253
|
||||
cyr_SHORT_I 234
|
||||
cyr_SOFT_SIGN 248
|
||||
cyr_TE 244
|
||||
cyr_TSE 227
|
||||
cyr_U 245
|
||||
cyr_VE 247
|
||||
cyr_YA 241
|
||||
cyr_YERU 249
|
||||
cyr_IO 179
|
||||
cyr_YU 224
|
||||
cyr_ZE 250
|
||||
cyr_ZHE 246
|
||||
cyr_a 193
|
||||
cyr_be 194
|
||||
cyr_che 222
|
||||
cyr_de 196
|
||||
cyr_e 220
|
||||
cyr_ef 198
|
||||
cyr_el 204
|
||||
cyr_em 205
|
||||
cyr_en 206
|
||||
cyr_er 210
|
||||
cyr_es 211
|
||||
graphic_100pc 141
|
||||
graphic_25pc 144
|
||||
graphic_50pc 145
|
||||
graphic_75pc 146
|
||||
graphic_LD 168
|
||||
graphic_LR 160
|
||||
graphic_LRD 184
|
||||
graphic_LRT 187
|
||||
graphic_LRTD 190
|
||||
graphic_LRd 182
|
||||
graphic_LRt 185
|
||||
graphic_LRtd 188
|
||||
graphic_LT 174
|
||||
graphic_LTD 181
|
||||
graphic_Ld 166
|
||||
graphic_Lt 172
|
||||
graphic_Ltd 178
|
||||
graphic_RD 165
|
||||
graphic_RT 171
|
||||
graphic_RTD 177
|
||||
graphic_Rd 162
|
||||
graphic_Rt 170
|
||||
graphic_Rtd 175
|
||||
graphic_TD 161
|
||||
copyright 191
|
||||
degree 156
|
||||
graphic_dintegral 155
|
||||
graphic_divide 159
|
||||
graphic_equal 151
|
||||
graphic_fatdot 149
|
||||
graphic_ge 153
|
||||
graphic_lD 167
|
||||
graphic_lT 173
|
||||
graphic_lTD 180
|
||||
graphic_ld 131
|
||||
graphic_le 152
|
||||
graphic_leandot 158
|
||||
graphic_lefthalf 142
|
||||
graphic_lowerhalf 140
|
||||
graphic_lr 128
|
||||
graphic_lrD 183
|
||||
graphic_lrT 186
|
||||
graphic_lrTD 189
|
||||
graphic_lrd 136
|
||||
graphic_lrt 137
|
||||
graphic_lrtd 138
|
||||
graphic_lt 133
|
||||
graphic_ltd 135
|
||||
graphic_power2 157
|
||||
graphic_rD 164
|
||||
graphic_rT 169
|
||||
graphic_rTD 176
|
||||
graphic_rd 130
|
||||
graphic_righthalf 143
|
||||
graphic_root 150
|
||||
graphic_rt 132
|
||||
graphic_rtd 134
|
||||
nbspace 154
|
||||
graphic_square 148
|
||||
graphic_td 129
|
||||
graphic_tintegral 147
|
||||
graphic_upperhalf 139
|
||||
cyr_ghe 199
|
||||
cyr_ha 200
|
||||
cyr_hard_sign 223
|
||||
cyr_i 201
|
||||
cyr_ie 197
|
||||
cyr_ka 203
|
||||
cyr_o 207
|
||||
cyr_pe 208
|
||||
cyr_sha 219
|
||||
cyr_shcha 221
|
||||
cyr_short_i 202
|
||||
cyr_soft_sign 216
|
||||
cyr_te 212
|
||||
cyr_tse 195
|
||||
cyr_u 213
|
||||
cyr_ve 215
|
||||
cyr_ya 209
|
||||
cyr_yeru 217
|
||||
cyr_io 163
|
||||
cyr_yu 192
|
||||
cyr_ze 218
|
||||
cyr_zhe 214
|
||||
0
pdf/lib/ttf2ufm/src/encodings/latin1/iso8859-1.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin1/iso8859-1.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin2/iso8859-2.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin2/iso8859-2.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin4/iso8859-4
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin4/iso8859-4
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin4/iso8859-4.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin4/iso8859-4.tbl
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin5/iso8859-9
Executable file
0
pdf/lib/ttf2ufm/src/encodings/latin5/iso8859-9
Executable file
3
pdf/lib/ttf2ufm/src/encodings/russian/README
Executable file
3
pdf/lib/ttf2ufm/src/encodings/russian/README
Executable file
@@ -0,0 +1,3 @@
|
||||
These files are copies of thos provided for the language "cyrillic"
|
||||
and are provided for compatibility purposes only, please
|
||||
use the language "cyrillic" instead.
|
||||
4
pdf/lib/ttf2ufm/src/encodings/russian/encodings.alias
Executable file
4
pdf/lib/ttf2ufm/src/encodings/russian/encodings.alias
Executable file
@@ -0,0 +1,4 @@
|
||||
# alias real-name
|
||||
iso8859-1 koi8-r
|
||||
windows-1251 ibm-1251
|
||||
cp-866 ibm-866
|
||||
127
pdf/lib/ttf2ufm/src/encodings/russian/ibm-1251.tbl
Executable file
127
pdf/lib/ttf2ufm/src/encodings/russian/ibm-1251.tbl
Executable file
@@ -0,0 +1,127 @@
|
||||
cyr_DJE 128
|
||||
cyr_GJE 129
|
||||
quotesinglbase 130
|
||||
cyr_gje 131
|
||||
quotedblbase 132
|
||||
ellipsis 133
|
||||
dagger 134
|
||||
daggerdbl 135
|
||||
Euro 136
|
||||
perthousand 137
|
||||
cyr_LJE 138
|
||||
guilsinglleft 139
|
||||
cyr_NJE 140
|
||||
cyr_KJE 141
|
||||
cyr_TSHE 142
|
||||
cyr_DZHE 143
|
||||
cyr_dje 144
|
||||
quotesinglleft 145
|
||||
quotesinglright 146
|
||||
quotedblleft 147
|
||||
quotedblright 148
|
||||
bullet 149
|
||||
endash 150
|
||||
emdash 151
|
||||
trademark 153
|
||||
cyr_lje 154
|
||||
guilsinglright 155
|
||||
cyr_nje 156
|
||||
cyr_kje 157
|
||||
cyr_tshe 158
|
||||
cyr_dzhe 159
|
||||
nbspace 160
|
||||
cyr_SHORT_U 161
|
||||
cyr_short_u 162
|
||||
cyr_JE 163
|
||||
currency 164
|
||||
cyr_GHE_UPTURN 165
|
||||
brokenbar 166
|
||||
section 167
|
||||
cyr_IO 168
|
||||
copyright 169
|
||||
cyr_UKRAINIAN_IE 170
|
||||
guillemotleft 171
|
||||
notsign 172
|
||||
hyphen 173
|
||||
registered 174
|
||||
cyr_YI 175
|
||||
degree 176
|
||||
plusminus 177
|
||||
cyr_BYELORUSSIAN_UKRAINIAN_I 178
|
||||
cyr_byelorussian_ukrainian_i 179
|
||||
cyr_ghe_upturn 180
|
||||
mu 181
|
||||
paragraph 182
|
||||
periodcentered 183
|
||||
cyr_io 184
|
||||
numero 185
|
||||
cyr_ukrainian_ie 186
|
||||
guillemotright 187
|
||||
cyr_je 188
|
||||
cyr_DZE 189
|
||||
cyr_dze 190
|
||||
cyr_yi 191
|
||||
cyr_A 192
|
||||
cyr_BE 193
|
||||
cyr_VE 194
|
||||
cyr_GHE 195
|
||||
cyr_DE 196
|
||||
cyr_IE 197
|
||||
cyr_ZHE 198
|
||||
cyr_ZE 199
|
||||
cyr_I 200
|
||||
cyr_SHORT_I 201
|
||||
cyr_KA 202
|
||||
cyr_EL 203
|
||||
cyr_EM 204
|
||||
cyr_EN 205
|
||||
cyr_O 206
|
||||
cyr_PE 207
|
||||
cyr_ER 208
|
||||
cyr_ES 209
|
||||
cyr_TE 210
|
||||
cyr_U 211
|
||||
cyr_EF 212
|
||||
cyr_HA 213
|
||||
cyr_TSE 214
|
||||
cyr_CHE 215
|
||||
cyr_SHA 216
|
||||
cyr_SHCHA 217
|
||||
cyr_HARD_SIGN 218
|
||||
cyr_YERU 219
|
||||
cyr_SOFT_SIGN 220
|
||||
cyr_E 221
|
||||
cyr_YU 222
|
||||
cyr_YA 223
|
||||
cyr_a 224
|
||||
cyr_be 225
|
||||
cyr_ve 226
|
||||
cyr_ghe 227
|
||||
cyr_de 228
|
||||
cyr_ie 229
|
||||
cyr_zhe 230
|
||||
cyr_ze 231
|
||||
cyr_i 232
|
||||
cyr_short_i 233
|
||||
cyr_ka 234
|
||||
cyr_el 235
|
||||
cyr_em 236
|
||||
cyr_en 237
|
||||
cyr_o 238
|
||||
cyr_pe 239
|
||||
cyr_er 240
|
||||
cyr_es 241
|
||||
cyr_te 242
|
||||
cyr_u 243
|
||||
cyr_ef 244
|
||||
cyr_ha 245
|
||||
cyr_tse 246
|
||||
cyr_che 247
|
||||
cyr_sha 248
|
||||
cyr_shcha 249
|
||||
cyr_hard_sign 250
|
||||
cyr_yeru 251
|
||||
cyr_soft_sign 252
|
||||
cyr_e 253
|
||||
cyr_yu 254
|
||||
cyr_ya 255
|
||||
128
pdf/lib/ttf2ufm/src/encodings/russian/ibm-866.tbl
Executable file
128
pdf/lib/ttf2ufm/src/encodings/russian/ibm-866.tbl
Executable file
@@ -0,0 +1,128 @@
|
||||
cyr_A 128
|
||||
cyr_BE 129
|
||||
cyr_CHE 151
|
||||
cyr_DE 132
|
||||
cyr_E 157
|
||||
cyr_EF 148
|
||||
cyr_EL 139
|
||||
cyr_EM 140
|
||||
cyr_EN 141
|
||||
cyr_ER 144
|
||||
cyr_ES 145
|
||||
cyr_GHE 131
|
||||
cyr_HA 149
|
||||
cyr_HARD_SIGN 154
|
||||
cyr_I 136
|
||||
cyr_IE 133
|
||||
cyr_KA 138
|
||||
cyr_O 142
|
||||
cyr_PE 143
|
||||
cyr_SHA 152
|
||||
cyr_SHCHA 153
|
||||
cyr_SHORT_I 137
|
||||
cyr_SOFT_SIGN 156
|
||||
cyr_TE 146
|
||||
cyr_TSE 150
|
||||
cyr_U 147
|
||||
cyr_VE 130
|
||||
cyr_YA 159
|
||||
cyr_YERU 155
|
||||
cyr_IO 240
|
||||
cyr_YU 158
|
||||
cyr_ZE 135
|
||||
cyr_ZHE 134
|
||||
cyr_a 160
|
||||
cyr_be 161
|
||||
cyr_che 231
|
||||
cyr_de 164
|
||||
cyr_e 237
|
||||
cyr_ef 228
|
||||
cyr_el 171
|
||||
cyr_em 172
|
||||
cyr_en 173
|
||||
cyr_er 224
|
||||
cyr_es 225
|
||||
graphic_100pc 219
|
||||
graphic_25pc 178
|
||||
graphic_50pc 177
|
||||
graphic_75pc 176
|
||||
graphic_LD 187
|
||||
graphic_LR 205
|
||||
graphic_LRD 203
|
||||
graphic_LRT 202
|
||||
graphic_LRTD 206
|
||||
graphic_LRd 209
|
||||
graphic_LRt 207
|
||||
graphic_LRtd 216
|
||||
graphic_LT 188
|
||||
graphic_LTD 185
|
||||
graphic_Ld 184
|
||||
graphic_Lt 190
|
||||
graphic_Ltd 181
|
||||
graphic_RD 201
|
||||
graphic_RT 200
|
||||
graphic_RTD 204
|
||||
graphic_Rd 213
|
||||
graphic_Rt 212
|
||||
graphic_Rtd 198
|
||||
graphic_TD 186
|
||||
copyright 252
|
||||
degree 248
|
||||
graphic_dintegral 245
|
||||
graphic_divide 246
|
||||
graphic_equal 247
|
||||
graphic_fatdot 249
|
||||
graphic_ge 242
|
||||
graphic_lD 183
|
||||
graphic_lT 189
|
||||
graphic_lTD 182
|
||||
graphic_ld 191
|
||||
graphic_le 243
|
||||
graphic_leandot 250
|
||||
graphic_lefthalf 221
|
||||
graphic_lowerhalf 220
|
||||
graphic_lr 196
|
||||
graphic_lrD 210
|
||||
graphic_lrT 208
|
||||
graphic_lrTD 215
|
||||
graphic_lrd 194
|
||||
graphic_lrt 193
|
||||
graphic_lrtd 197
|
||||
graphic_lt 217
|
||||
graphic_ltd 180
|
||||
graphic_power2 253
|
||||
graphic_rD 214
|
||||
graphic_rT 211
|
||||
graphic_rTD 199
|
||||
graphic_rd 218
|
||||
graphic_righthalf 222
|
||||
graphic_root 251
|
||||
graphic_rt 192
|
||||
graphic_rtd 195
|
||||
nbspace 255
|
||||
graphic_square 254
|
||||
graphic_td 179
|
||||
graphic_tintegral 244
|
||||
graphic_upperhalf 223
|
||||
cyr_ghe 163
|
||||
cyr_ha 229
|
||||
cyr_hard_sign 234
|
||||
cyr_i 168
|
||||
cyr_ie 165
|
||||
cyr_ka 170
|
||||
cyr_o 174
|
||||
cyr_pe 175
|
||||
cyr_sha 232
|
||||
cyr_shcha 233
|
||||
cyr_short_i 169
|
||||
cyr_soft_sign 236
|
||||
cyr_te 226
|
||||
cyr_tse 230
|
||||
cyr_u 227
|
||||
cyr_ve 162
|
||||
cyr_ya 239
|
||||
cyr_yeru 235
|
||||
cyr_io 241
|
||||
cyr_yu 238
|
||||
cyr_ze 167
|
||||
cyr_zhe 166
|
||||
127
pdf/lib/ttf2ufm/src/encodings/russian/iso8859-5.tbl
Executable file
127
pdf/lib/ttf2ufm/src/encodings/russian/iso8859-5.tbl
Executable file
@@ -0,0 +1,127 @@
|
||||
cyr_GHE_UPTURN 128
|
||||
cyr_ghe_upturn 129
|
||||
quotesinglbase 130
|
||||
currency 131
|
||||
quotedblbase 132
|
||||
ellipsis 133
|
||||
dagger 134
|
||||
daggerdbl 135
|
||||
Euro 136
|
||||
perthousand 137
|
||||
brokenbar 138
|
||||
guilsinglleft 139
|
||||
copyright 140
|
||||
guillemotleft 141
|
||||
notsign 142
|
||||
registered 143
|
||||
degree 144
|
||||
quotesinglleft 145
|
||||
quotesinglright 146
|
||||
quotedblleft 147
|
||||
quotedblright 148
|
||||
bullet 149
|
||||
endash 150
|
||||
emdash 151
|
||||
trademark 153
|
||||
plusminus 154
|
||||
guilsinglright 155
|
||||
mu 156
|
||||
paragraph 157
|
||||
periodcentered 158
|
||||
guillemotright 159
|
||||
nbspace 160
|
||||
cyr_IO 161
|
||||
cyr_DJE 162
|
||||
cyr_GJE 163
|
||||
cyr_UKRAINIAN_IE 164
|
||||
cyr_DZE 165
|
||||
cyr_BYELORUSSIAN_UKRAINIAN_I 166
|
||||
cyr_YI 167
|
||||
cyr_JE 168
|
||||
cyr_LJE 169
|
||||
cyr_NJE 170
|
||||
cyr_TSHE 171
|
||||
cyr_KJE 172
|
||||
hyphen 173
|
||||
cyr_SHORT_U 174
|
||||
cyr_DZHE 175
|
||||
cyr_A 176
|
||||
cyr_BE 177
|
||||
cyr_VE 178
|
||||
cyr_GHE 179
|
||||
cyr_DE 180
|
||||
cyr_IE 181
|
||||
cyr_ZHE 182
|
||||
cyr_ZE 183
|
||||
cyr_I 184
|
||||
cyr_SHORT_I 185
|
||||
cyr_KA 186
|
||||
cyr_EL 187
|
||||
cyr_EM 188
|
||||
cyr_EN 189
|
||||
cyr_O 190
|
||||
cyr_PE 191
|
||||
cyr_ER 192
|
||||
cyr_ES 193
|
||||
cyr_TE 194
|
||||
cyr_U 195
|
||||
cyr_EF 196
|
||||
cyr_HA 197
|
||||
cyr_TSE 198
|
||||
cyr_CHE 199
|
||||
cyr_SHA 200
|
||||
cyr_SHCHA 201
|
||||
cyr_HARD_SIGN 202
|
||||
cyr_YERU 203
|
||||
cyr_SOFT_SIGN 204
|
||||
cyr_E 205
|
||||
cyr_YU 206
|
||||
cyr_YA 207
|
||||
cyr_a 208
|
||||
cyr_be 209
|
||||
cyr_ve 210
|
||||
cyr_ghe 211
|
||||
cyr_de 212
|
||||
cyr_ie 213
|
||||
cyr_zhe 214
|
||||
cyr_ze 215
|
||||
cyr_i 216
|
||||
cyr_short_i 217
|
||||
cyr_ka 218
|
||||
cyr_el 219
|
||||
cyr_em 220
|
||||
cyr_en 221
|
||||
cyr_o 222
|
||||
cyr_pe 223
|
||||
cyr_er 224
|
||||
cyr_es 225
|
||||
cyr_te 226
|
||||
cyr_u 227
|
||||
cyr_ef 228
|
||||
cyr_ha 229
|
||||
cyr_tse 230
|
||||
cyr_che 231
|
||||
cyr_sha 232
|
||||
cyr_shcha 233
|
||||
cyr_hard_sign 234
|
||||
cyr_yeru 235
|
||||
cyr_soft_sign 236
|
||||
cyr_e 237
|
||||
cyr_yu 238
|
||||
cyr_ya 239
|
||||
numero 240
|
||||
cyr_io 241
|
||||
cyr_dje 242
|
||||
cyr_gje 243
|
||||
cyr_ukrainian_ie 244
|
||||
cyr_dze 245
|
||||
cyr_byelorussian_ukrainian_i 246
|
||||
cyr_yi 247
|
||||
cyr_je 248
|
||||
cyr_lje 249
|
||||
cyr_nje 250
|
||||
cyr_tshe 251
|
||||
cyr_kje 252
|
||||
section 253
|
||||
cyr_short_u 254
|
||||
cyr_dzhe 255
|
||||
128
pdf/lib/ttf2ufm/src/encodings/russian/koi8-r.tbl
Executable file
128
pdf/lib/ttf2ufm/src/encodings/russian/koi8-r.tbl
Executable file
@@ -0,0 +1,128 @@
|
||||
cyr_A 225
|
||||
cyr_BE 226
|
||||
cyr_CHE 254
|
||||
cyr_DE 228
|
||||
cyr_E 252
|
||||
cyr_EF 230
|
||||
cyr_EL 236
|
||||
cyr_EM 237
|
||||
cyr_EN 238
|
||||
cyr_ER 242
|
||||
cyr_ES 243
|
||||
cyr_GHE 231
|
||||
cyr_HA 232
|
||||
cyr_HARD_SIGN 255
|
||||
cyr_I 233
|
||||
cyr_IE 229
|
||||
cyr_KA 235
|
||||
cyr_O 239
|
||||
cyr_PE 240
|
||||
cyr_SHA 251
|
||||
cyr_SHCHA 253
|
||||
cyr_SHORT_I 234
|
||||
cyr_SOFT_SIGN 248
|
||||
cyr_TE 244
|
||||
cyr_TSE 227
|
||||
cyr_U 245
|
||||
cyr_VE 247
|
||||
cyr_YA 241
|
||||
cyr_YERU 249
|
||||
cyr_IO 179
|
||||
cyr_YU 224
|
||||
cyr_ZE 250
|
||||
cyr_ZHE 246
|
||||
cyr_a 193
|
||||
cyr_be 194
|
||||
cyr_che 222
|
||||
cyr_de 196
|
||||
cyr_e 220
|
||||
cyr_ef 198
|
||||
cyr_el 204
|
||||
cyr_em 205
|
||||
cyr_en 206
|
||||
cyr_er 210
|
||||
cyr_es 211
|
||||
graphic_100pc 141
|
||||
graphic_25pc 144
|
||||
graphic_50pc 145
|
||||
graphic_75pc 146
|
||||
graphic_LD 168
|
||||
graphic_LR 160
|
||||
graphic_LRD 184
|
||||
graphic_LRT 187
|
||||
graphic_LRTD 190
|
||||
graphic_LRd 182
|
||||
graphic_LRt 185
|
||||
graphic_LRtd 188
|
||||
graphic_LT 174
|
||||
graphic_LTD 181
|
||||
graphic_Ld 166
|
||||
graphic_Lt 172
|
||||
graphic_Ltd 178
|
||||
graphic_RD 165
|
||||
graphic_RT 171
|
||||
graphic_RTD 177
|
||||
graphic_Rd 162
|
||||
graphic_Rt 170
|
||||
graphic_Rtd 175
|
||||
graphic_TD 161
|
||||
copyright 191
|
||||
degree 156
|
||||
graphic_dintegral 155
|
||||
graphic_divide 159
|
||||
graphic_equal 151
|
||||
graphic_fatdot 149
|
||||
graphic_ge 153
|
||||
graphic_lD 167
|
||||
graphic_lT 173
|
||||
graphic_lTD 180
|
||||
graphic_ld 131
|
||||
graphic_le 152
|
||||
graphic_leandot 158
|
||||
graphic_lefthalf 142
|
||||
graphic_lowerhalf 140
|
||||
graphic_lr 128
|
||||
graphic_lrD 183
|
||||
graphic_lrT 186
|
||||
graphic_lrTD 189
|
||||
graphic_lrd 136
|
||||
graphic_lrt 137
|
||||
graphic_lrtd 138
|
||||
graphic_lt 133
|
||||
graphic_ltd 135
|
||||
graphic_power2 157
|
||||
graphic_rD 164
|
||||
graphic_rT 169
|
||||
graphic_rTD 176
|
||||
graphic_rd 130
|
||||
graphic_righthalf 143
|
||||
graphic_root 150
|
||||
graphic_rt 132
|
||||
graphic_rtd 134
|
||||
nbspace 154
|
||||
graphic_square 148
|
||||
graphic_td 129
|
||||
graphic_tintegral 147
|
||||
graphic_upperhalf 139
|
||||
cyr_ghe 199
|
||||
cyr_ha 200
|
||||
cyr_hard_sign 223
|
||||
cyr_i 201
|
||||
cyr_ie 197
|
||||
cyr_ka 203
|
||||
cyr_o 207
|
||||
cyr_pe 208
|
||||
cyr_sha 219
|
||||
cyr_shcha 221
|
||||
cyr_short_i 202
|
||||
cyr_soft_sign 216
|
||||
cyr_te 212
|
||||
cyr_tse 195
|
||||
cyr_u 213
|
||||
cyr_ve 215
|
||||
cyr_ya 209
|
||||
cyr_yeru 217
|
||||
cyr_io 163
|
||||
cyr_yu 192
|
||||
cyr_ze 218
|
||||
cyr_zhe 214
|
||||
649
pdf/lib/ttf2ufm/src/ft.c
Executable file
649
pdf/lib/ttf2ufm/src/ft.c
Executable file
@@ -0,0 +1,649 @@
|
||||
/*
|
||||
* The font parser using the FreeType library version 2.
|
||||
*
|
||||
* see COPYRIGHT
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef USE_FREETYPE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <freetype/config/ftheader.h>
|
||||
#include <freetype/freetype.h>
|
||||
#include <freetype/ftglyph.h>
|
||||
#include <freetype/ftsnames.h>
|
||||
#include <freetype/ttnameid.h>
|
||||
#include <freetype/ftoutln.h>
|
||||
#include "pt1.h"
|
||||
#include "global.h"
|
||||
|
||||
/* prototypes of call entries */
|
||||
static void openfont(char *fname, char *arg);
|
||||
static void closefont( void);
|
||||
static int getnglyphs ( void);
|
||||
static int glnames( GLYPH *glyph_list);
|
||||
static void glmetrics( GLYPH *glyph_list);
|
||||
static int glenc( GLYPH *glyph_list, int *encoding, int *unimap);
|
||||
static void fnmetrics( struct font_metrics *fm);
|
||||
static void glpath( int glyphno, GLYPH *glyph_list);
|
||||
static void kerning( GLYPH *glyph_list);
|
||||
|
||||
/* globals */
|
||||
|
||||
/* front-end descriptor */
|
||||
struct frontsw freetype_sw = {
|
||||
/*name*/ "ft",
|
||||
/*descr*/ "based on the FreeType library",
|
||||
/*suffix*/ { "ttf", "otf", "pfa", "pfb" },
|
||||
/*open*/ openfont,
|
||||
/*close*/ closefont,
|
||||
/*nglyphs*/ getnglyphs,
|
||||
/*glnames*/ glnames,
|
||||
/*glmetrics*/ glmetrics,
|
||||
/*glenc*/ glenc,
|
||||
/*fnmetrics*/ fnmetrics,
|
||||
/*glpath*/ glpath,
|
||||
/*kerning*/ kerning,
|
||||
};
|
||||
|
||||
/* statics */
|
||||
|
||||
static FT_Library library;
|
||||
static FT_Face face;
|
||||
|
||||
static int enc_type, enc_found;
|
||||
|
||||
/* SFNT functions do not seem to be included by default in FT2beta8 */
|
||||
#define ENABLE_SFNT
|
||||
|
||||
/*
|
||||
* Open font and prepare to return information to the main driver.
|
||||
* May print error and warning messages.
|
||||
* Exit on error.
|
||||
*/
|
||||
|
||||
static void
|
||||
openfont(
|
||||
char *fname,
|
||||
char *arg /* unused now */
|
||||
)
|
||||
{
|
||||
FT_Error error;
|
||||
|
||||
if( FT_Init_FreeType( &library ) ) {
|
||||
fprintf(stderr, "** FreeType initialization failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if( error = FT_New_Face( library, fname, 0, &face ) ) {
|
||||
if ( error == FT_Err_Unknown_File_Format )
|
||||
fprintf(stderr, "**** %s has format unknown to FreeType\n", fname);
|
||||
else
|
||||
fprintf(stderr, "**** Cannot access %s ****\n", fname);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(FT_HAS_FIXED_SIZES(face)) {
|
||||
WARNING_1 fprintf(stderr, "Font contains bitmaps\n");
|
||||
}
|
||||
if(FT_HAS_MULTIPLE_MASTERS(face)) {
|
||||
WARNING_1 fprintf(stderr, "Font contains multiple masters, using default\n");
|
||||
}
|
||||
|
||||
if(ISDBG(FT)) fprintf(stderr," %d units per EM\n", face->units_per_EM);
|
||||
|
||||
enc_found = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Close font.
|
||||
* Exit on error.
|
||||
*/
|
||||
|
||||
static void
|
||||
closefont(
|
||||
void
|
||||
)
|
||||
{
|
||||
if( FT_Done_Face(face) ) {
|
||||
WARNING_1 fprintf(stderr, "Errors when closing the font file, ignored\n");
|
||||
}
|
||||
if( FT_Done_FreeType(library) ) {
|
||||
WARNING_1 fprintf(stderr, "Errors when stopping FreeType, ignored\n");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the number of glyphs in font.
|
||||
*/
|
||||
|
||||
static int
|
||||
getnglyphs (
|
||||
void
|
||||
)
|
||||
{
|
||||
if(ISDBG(FT)) fprintf(stderr, "%d glyphs in font\n", face->num_glyphs);
|
||||
return (int)face->num_glyphs;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the names of the glyphs.
|
||||
* Returns 0 if the names were assigned, non-zero if the font
|
||||
* provides no glyph names.
|
||||
*/
|
||||
|
||||
static int
|
||||
glnames(
|
||||
GLYPH *glyph_list
|
||||
)
|
||||
{
|
||||
#define MAX_NAMELEN 1024
|
||||
unsigned char bf[1024];
|
||||
int i;
|
||||
|
||||
if( ! FT_HAS_GLYPH_NAMES(face) ) {
|
||||
WARNING_1 fprintf(stderr, "Font has no glyph names\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
for(i=0; i < face->num_glyphs; i++) {
|
||||
if( FT_Get_Glyph_Name(face, i, bf, MAX_NAMELEN) || bf[0]==0 ) {
|
||||
sprintf(bf, "_g_%d", i);
|
||||
WARNING_2 fprintf(stderr,
|
||||
"Glyph No. %d has no postscript name, becomes %s\n", i, bf);
|
||||
}
|
||||
glyph_list[i].name = strdup(bf);
|
||||
if(ISDBG(FT)) fprintf(stderr, "%d has name %s\n", i, bf);
|
||||
if (glyph_list[i].name == NULL) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the metrics of the glyphs.
|
||||
*/
|
||||
|
||||
static void
|
||||
glmetrics(
|
||||
GLYPH *glyph_list
|
||||
)
|
||||
{
|
||||
GLYPH *g;
|
||||
int i;
|
||||
FT_Glyph_Metrics *met;
|
||||
FT_BBox bbox;
|
||||
FT_Glyph gly;
|
||||
FT_ULong charcode;
|
||||
FT_UInt index;
|
||||
|
||||
for(i=0; i < face->num_glyphs; i++) {
|
||||
g = &(glyph_list[i]);
|
||||
|
||||
if( FT_Load_Glyph(face, i, FT_LOAD_NO_BITMAP|FT_LOAD_NO_SCALE) ) {
|
||||
fprintf(stderr, "Can't load glyph %s, skipped\n", g->name);
|
||||
continue;
|
||||
}
|
||||
|
||||
met = &face->glyph->metrics;
|
||||
|
||||
if(FT_HAS_HORIZONTAL(face)) {
|
||||
g->width = met->horiAdvance;
|
||||
g->lsb = met->horiBearingX;
|
||||
} else {
|
||||
WARNING_2 fprintf(stderr, "Glyph %s has no horizontal metrics, guessed them\n", g->name);
|
||||
g->width = met->width;
|
||||
g->lsb = 0;
|
||||
}
|
||||
|
||||
if( FT_Get_Glyph(face->glyph, &gly) ) {
|
||||
fprintf(stderr, "Can't access glyph %s bbox, skipped\n", g->name);
|
||||
continue;
|
||||
}
|
||||
|
||||
FT_Glyph_Get_CBox(gly, ft_glyph_bbox_unscaled, &bbox);
|
||||
g->xMin = bbox.xMin;
|
||||
g->yMin = bbox.yMin;
|
||||
g->xMax = bbox.xMax;
|
||||
g->yMax = bbox.yMax;
|
||||
|
||||
g->ttf_pathlen = face->glyph->outline.n_points;
|
||||
|
||||
}
|
||||
|
||||
charcode = FT_Get_First_Char(face, &index);
|
||||
while ( index != 0 ) {
|
||||
if ( index >= face->num_glyphs ) {
|
||||
break;
|
||||
}
|
||||
for ( i = 0; i < GLYPH_MAX_ENCODINGS; i++ ) {
|
||||
if ( glyph_list[index].orig_code[i] == -1 )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( i == GLYPH_MAX_ENCODINGS ) {
|
||||
if (strcmp(glyph_list[index].name, ".notdef") != 0) {
|
||||
WARNING_2 fprintf(stderr,
|
||||
"Glyph %s has >= %d encodings (A), %4.4x & %4.4x\n",
|
||||
GLYPH_MAX_ENCODINGS,
|
||||
glyph_list[index].name,
|
||||
glyph_list[index].orig_code[i],
|
||||
charcode);
|
||||
}
|
||||
} else {
|
||||
glyph_list[index].orig_code[i] = charcode;
|
||||
}
|
||||
|
||||
charcode = FT_Get_Next_Char(face, charcode, &index);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the original encoding of the font.
|
||||
* Returns 1 for if the original encoding is Unicode, 2 if the
|
||||
* original encoding is other 16-bit, 0 if 8-bit.
|
||||
*/
|
||||
|
||||
static int
|
||||
glenc(
|
||||
GLYPH *glyph_list,
|
||||
int *encoding,
|
||||
int *unimap
|
||||
)
|
||||
{
|
||||
int i, e;
|
||||
unsigned code, index;
|
||||
|
||||
if(ISDBG(FT))
|
||||
for(e=0; e < face->num_charmaps; e++) {
|
||||
fprintf(stderr, "found encoding pid=%d eid=%d\n",
|
||||
face->charmaps[e]->platform_id,
|
||||
face->charmaps[e]->encoding_id);
|
||||
}
|
||||
|
||||
if(enc_found)
|
||||
goto populate_map;
|
||||
|
||||
enc_type = 0;
|
||||
|
||||
/* first check for an explicit PID/EID */
|
||||
|
||||
if(force_pid != -1) {
|
||||
for(e=0; e < face->num_charmaps; e++) {
|
||||
if(face->charmaps[e]->platform_id == force_pid
|
||||
&& face->charmaps[e]->encoding_id == force_eid) {
|
||||
WARNING_1 fprintf(stderr, "Found Encoding PID=%d/EID=%d\n",
|
||||
force_pid, force_eid);
|
||||
if( !face->charmaps || FT_Set_Charmap(face, face->charmaps[e]) ) {
|
||||
fprintf(stderr, "**** Cannot set charmap in FreeType ****\n");
|
||||
exit(1);
|
||||
}
|
||||
enc_type = 1;
|
||||
goto populate_map;
|
||||
}
|
||||
}
|
||||
fprintf(stderr, "*** TTF encoding table PID=%d/EID=%d not found\n",
|
||||
force_pid, force_eid);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* next check for a direct Adobe mapping */
|
||||
|
||||
if(!forcemap) {
|
||||
for(e=0; e < face->num_charmaps; e++) {
|
||||
if(face->charmaps[e]->encoding == ft_encoding_adobe_custom) {
|
||||
WARNING_1 fputs("Found Adobe Custom Encoding\n", stderr);
|
||||
if( FT_Set_Charmap(face, face->charmaps[e]) ) {
|
||||
fprintf(stderr, "**** Cannot set charmap in FreeType ****\n");
|
||||
exit(1);
|
||||
}
|
||||
goto populate_map;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(e=0; e < face->num_charmaps; e++) {
|
||||
if(face->charmaps[e]->platform_id == 3) {
|
||||
switch(face->charmaps[e]->encoding_id) {
|
||||
case 0:
|
||||
WARNING_1 fputs("Found Symbol Encoding\n", stderr);
|
||||
break;
|
||||
case 1:
|
||||
WARNING_1 fputs("Found Unicode Encoding\n", stderr);
|
||||
enc_type = 1;
|
||||
break;
|
||||
default:
|
||||
WARNING_1 {
|
||||
fprintf(stderr,
|
||||
"****MS Encoding ID %d not supported****\n",
|
||||
face->charmaps[e]->encoding_id);
|
||||
fputs("Treating it like Symbol encoding\n", stderr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(e >= face->num_charmaps) {
|
||||
WARNING_1 fputs("No Microsoft encoding, using first encoding available\n", stderr);
|
||||
e = 0;
|
||||
}
|
||||
|
||||
if( FT_Set_Charmap(face, face->charmaps[e]) ) {
|
||||
fprintf(stderr, "**** Cannot set charmap in FreeType ****\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
populate_map:
|
||||
enc_found = 1;
|
||||
|
||||
for(i=0; i<ENCTABSZ; i++) {
|
||||
if(encoding[i] != -1)
|
||||
continue;
|
||||
if(enc_type == 1 || forcemap) {
|
||||
code = unimap[i];
|
||||
if(code == (unsigned) -1)
|
||||
continue;
|
||||
} else
|
||||
code = i;
|
||||
|
||||
code = FT_Get_Char_Index(face, code);
|
||||
if(0 && ISDBG(FT)) fprintf(stderr, "code of %3d is %3d\n", i, code);
|
||||
if(code == 0)
|
||||
continue; /* .notdef */
|
||||
encoding[i] = code;
|
||||
}
|
||||
|
||||
return enc_type;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the font metrics
|
||||
*/
|
||||
static void
|
||||
fnmetrics(
|
||||
struct font_metrics *fm
|
||||
)
|
||||
{
|
||||
char *str;
|
||||
static char *fieldstocheck[3];
|
||||
#ifdef ENABLE_SFNT
|
||||
FT_SfntName sn;
|
||||
#endif /* ENABLE_SFNT */
|
||||
int i, j, len;
|
||||
|
||||
fm->italic_angle = 0.0; /* FreeType hides the angle */
|
||||
fm->underline_position = face->underline_position;
|
||||
fm->underline_thickness = face->underline_thickness;
|
||||
fm->is_fixed_pitch = FT_IS_FIXED_WIDTH(face);
|
||||
|
||||
fm->ascender = face->ascender;
|
||||
fm->descender = face->descender;
|
||||
|
||||
fm->units_per_em = face->units_per_EM;
|
||||
|
||||
fm->bbox[0] = face->bbox.xMin;
|
||||
fm->bbox[1] = face->bbox.yMin;
|
||||
fm->bbox[2] = face->bbox.xMax;
|
||||
fm->bbox[3] = face->bbox.yMax;
|
||||
|
||||
#ifdef ENABLE_SFNT
|
||||
if( FT_Get_Sfnt_Name(face, TT_NAME_ID_COPYRIGHT, &sn) )
|
||||
#endif /* ENABLE_SFNT */
|
||||
fm->name_copyright = "";
|
||||
#ifdef ENABLE_SFNT
|
||||
else
|
||||
fm->name_copyright = dupcnstring(sn.string, sn.string_len);
|
||||
#endif /* ENABLE_SFNT */
|
||||
|
||||
fm->name_family = face->family_name;
|
||||
|
||||
fm->name_style = face->style_name;
|
||||
if(fm->name_style == NULL)
|
||||
fm->name_style = "";
|
||||
|
||||
#ifdef ENABLE_SFNT
|
||||
if( FT_Get_Sfnt_Name(face, TT_NAME_ID_FULL_NAME, &sn) )
|
||||
#endif /* ENABLE_SFNT */
|
||||
{
|
||||
int len;
|
||||
|
||||
len = strlen(fm->name_family) + strlen(fm->name_style) + 2;
|
||||
if(( fm->name_full = malloc(len) )==NULL) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
strcpy(fm->name_full, fm->name_family);
|
||||
if(strlen(fm->name_style) != 0) {
|
||||
strcat(fm->name_full, " ");
|
||||
strcat(fm->name_full, fm->name_style);
|
||||
}
|
||||
}
|
||||
#ifdef ENABLE_SFNT
|
||||
else
|
||||
fm->name_full = dupcnstring(sn.string, sn.string_len);
|
||||
#endif /* ENABLE_SFNT */
|
||||
|
||||
#ifdef ENABLE_SFNT
|
||||
if( FT_Get_Sfnt_Name(face, TT_NAME_ID_VERSION_STRING, &sn) )
|
||||
#endif /* ENABLE_SFNT */
|
||||
fm->name_version = "1.0";
|
||||
#ifdef ENABLE_SFNT
|
||||
else
|
||||
fm->name_version = dupcnstring(sn.string, sn.string_len);
|
||||
#endif /* ENABLE_SFNT */
|
||||
|
||||
#ifdef ENABLE_SFNT
|
||||
if( FT_Get_Sfnt_Name(face, TT_NAME_ID_PS_NAME , &sn) ) {
|
||||
#endif /* ENABLE_SFNT */
|
||||
if(( fm->name_ps = strdup(fm->name_full) )==NULL) {
|
||||
fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
|
||||
exit(255);
|
||||
}
|
||||
#ifdef ENABLE_SFNT
|
||||
} else
|
||||
fm->name_ps = dupcnstring(sn.string, sn.string_len);
|
||||
#endif /* ENABLE_SFNT */
|
||||
for(i=0; fm->name_ps[i]!=0; i++)
|
||||
if(fm->name_ps[i] == ' ')
|
||||
fm->name_ps[i] = '_'; /* no spaces in the Postscript name *m
|
||||
|
||||
/* guess the boldness from the font names */
|
||||
fm->force_bold=0;
|
||||
|
||||
fieldstocheck[0] = fm->name_style;
|
||||
fieldstocheck[1] = fm->name_full;
|
||||
fieldstocheck[2] = fm->name_ps;
|
||||
|
||||
for(i=0; !fm->force_bold && i<sizeof fieldstocheck /sizeof(fieldstocheck[0]); i++) {
|
||||
str=fieldstocheck[i];
|
||||
len = strlen(str);
|
||||
for(j=0; j<len; j++) {
|
||||
if( (str[j]=='B'
|
||||
|| str[j]=='b'
|
||||
&& ( j==0 || !isalpha(str[j-1]) )
|
||||
)
|
||||
&& !strncmp("old",&str[j+1],3)
|
||||
&& (j+4 >= len || !islower(str[j+4]))
|
||||
) {
|
||||
fm->force_bold=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Functions to decompose the outlines
|
||||
*/
|
||||
|
||||
static GLYPH *curg;
|
||||
static double lastx, lasty;
|
||||
|
||||
static int
|
||||
outl_moveto(
|
||||
FT_Vector *to,
|
||||
void *unused
|
||||
)
|
||||
{
|
||||
double tox, toy;
|
||||
|
||||
tox = fscale((double)to->x); toy = fscale((double)to->y);
|
||||
|
||||
/* FreeType does not do explicit closepath() */
|
||||
if(curg->lastentry) {
|
||||
g_closepath(curg);
|
||||
}
|
||||
fg_rmoveto(curg, tox, toy);
|
||||
lastx = tox; lasty = toy;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
outl_lineto(
|
||||
FT_Vector *to,
|
||||
void *unused
|
||||
)
|
||||
{
|
||||
double tox, toy;
|
||||
|
||||
tox = fscale((double)to->x); toy = fscale((double)to->y);
|
||||
|
||||
fg_rlineto(curg, tox, toy);
|
||||
lastx = tox; lasty = toy;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
outl_conicto(
|
||||
FT_Vector *control1,
|
||||
FT_Vector *to,
|
||||
void *unused
|
||||
)
|
||||
{
|
||||
double c1x, c1y, tox, toy;
|
||||
|
||||
c1x = fscale((double)control1->x); c1y = fscale((double)control1->y);
|
||||
tox = fscale((double)to->x); toy = fscale((double)to->y);
|
||||
|
||||
fg_rrcurveto(curg,
|
||||
(lastx + 2.0 * c1x) / 3.0, (lasty + 2.0 * c1y) / 3.0,
|
||||
(2.0 * c1x + tox) / 3.0, (2.0 * c1y + toy) / 3.0,
|
||||
tox, toy );
|
||||
lastx = tox; lasty = toy;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
outl_cubicto(
|
||||
FT_Vector *control1,
|
||||
FT_Vector *control2,
|
||||
FT_Vector *to,
|
||||
void *unused
|
||||
)
|
||||
{
|
||||
double c1x, c1y, c2x, c2y, tox, toy;
|
||||
|
||||
c1x = fscale((double)control1->x); c1y = fscale((double)control1->y);
|
||||
c2x = fscale((double)control2->x); c2y = fscale((double)control2->y);
|
||||
tox = fscale((double)to->x); toy = fscale((double)to->y);
|
||||
|
||||
fg_rrcurveto(curg, c1x, c1y, c2x, c2y, tox, toy);
|
||||
lastx = tox; lasty = toy;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static FT_Outline_Funcs ft_outl_funcs = {
|
||||
outl_moveto,
|
||||
outl_lineto,
|
||||
outl_conicto,
|
||||
outl_cubicto,
|
||||
0,
|
||||
0
|
||||
};
|
||||
|
||||
/*
|
||||
* Get the path of contrours for a glyph.
|
||||
*/
|
||||
|
||||
static void
|
||||
glpath(
|
||||
int glyphno,
|
||||
GLYPH *glyf_list
|
||||
)
|
||||
{
|
||||
FT_Outline *ol;
|
||||
|
||||
curg = &glyf_list[glyphno];
|
||||
|
||||
if( FT_Load_Glyph(face, glyphno, FT_LOAD_NO_BITMAP|FT_LOAD_NO_SCALE|FT_LOAD_NO_HINTING)
|
||||
|| face->glyph->format != ft_glyph_format_outline ) {
|
||||
fprintf(stderr, "Can't load glyph %s, skipped\n", curg->name);
|
||||
return;
|
||||
}
|
||||
|
||||
ol = &face->glyph->outline;
|
||||
lastx = 0.0; lasty = 0.0;
|
||||
|
||||
if( FT_Outline_Decompose(ol, &ft_outl_funcs, NULL) ) {
|
||||
fprintf(stderr, "Can't decompose outline of glyph %s, skipped\n", curg->name);
|
||||
return;
|
||||
}
|
||||
|
||||
/* FreeType does not do explicit closepath() */
|
||||
if(curg->lastentry) {
|
||||
g_closepath(curg);
|
||||
}
|
||||
|
||||
if(ol->flags & ft_outline_reverse_fill) {
|
||||
assertpath(curg->entries, __FILE__, __LINE__, curg->name);
|
||||
reversepaths(curg);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the kerning data.
|
||||
*/
|
||||
|
||||
static void
|
||||
kerning(
|
||||
GLYPH *glyph_list
|
||||
)
|
||||
{
|
||||
int i, j, n;
|
||||
int nglyphs = face->num_glyphs;
|
||||
FT_Vector k;
|
||||
GLYPH *gl;
|
||||
|
||||
if( nglyphs == 0 || !FT_HAS_KERNING(face) ) {
|
||||
WARNING_1 fputs("No Kerning data\n", stderr);
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0; i<nglyphs; i++) {
|
||||
if( (glyph_list[i].flags & GF_USED) ==0)
|
||||
continue;
|
||||
for(j=0; j<nglyphs; j++) {
|
||||
if( (glyph_list[j].flags & GF_USED) ==0)
|
||||
continue;
|
||||
if( FT_Get_Kerning(face, i, j, ft_kerning_unscaled, &k) )
|
||||
continue;
|
||||
if( k.x == 0 )
|
||||
continue;
|
||||
|
||||
addkernpair(i, j, k.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
173
pdf/lib/ttf2ufm/src/global.h
Executable file
173
pdf/lib/ttf2ufm/src/global.h
Executable file
@@ -0,0 +1,173 @@
|
||||
/*
|
||||
* see COPYRIGHT
|
||||
*/
|
||||
|
||||
|
||||
/* options */
|
||||
|
||||
extern int encode; /* encode the resulting file */
|
||||
extern int pfbflag; /* produce compressed file */
|
||||
extern int wantafm; /* want to see .afm instead of .t1a on stdout */
|
||||
extern int correctvsize; /* try to correct the vertical size of characters */
|
||||
extern int wantuid; /* user wants UniqueID entry in the font */
|
||||
extern int allglyphs; /* convert all glyphs, not only 256 of them */
|
||||
extern int warnlevel; /* the level of permitted warnings */
|
||||
extern int forcemap; /* do mapping even on non-Unicode fonts */
|
||||
/* options - maximal limits */
|
||||
extern int max_stemdepth; /* maximal depth of stem stack in interpreter */
|
||||
/* options - debugging */
|
||||
extern int absolute; /* print out in absolute values */
|
||||
extern int reverse; /* reverse font to Type1 path directions */
|
||||
/* options - suboptions of Outline Processing */
|
||||
extern int optimize; /* enables space optimization */
|
||||
extern int smooth; /* enable smoothing of outlines */
|
||||
extern int transform; /* enables transformation to 1000x1000 matrix */
|
||||
extern int hints; /* enables autogeneration of hints */
|
||||
extern int subhints; /* enables autogeneration of substituted hints */
|
||||
extern int trybold; /* try to guess whether the font is bold */
|
||||
extern int correctwidth; /* try to correct the character width */
|
||||
extern int vectorize; /* vectorize the bitmaps */
|
||||
extern int use_autotrace; /* use the autotrace library on bitmap */
|
||||
/* options - suboptions of File Generation */
|
||||
extern int gen_pfa; /* generate the font file */
|
||||
extern int gen_afm; /* generate the metrics file */
|
||||
extern int gen_dvienc; /* generate the dvips encoding file */
|
||||
|
||||
/* not quite options to select a particular source encoding */
|
||||
extern int force_pid; /* specific platform id */
|
||||
extern int force_eid; /* specific encoding id */
|
||||
|
||||
/* other globals */
|
||||
extern FILE *null_file, *pfa_file, *afm_file, *ufm_file, *dvienc_file;
|
||||
extern int numglyphs;
|
||||
|
||||
/* warnings */
|
||||
|
||||
#define WARNING_1 if(warnlevel >= 1)
|
||||
#define WARNING_2 if(warnlevel >= 2)
|
||||
#define WARNING_3 if(warnlevel >= 3)
|
||||
#define WARNING_4 if(warnlevel >= 4)
|
||||
|
||||
/*
|
||||
* Bitmap control macros
|
||||
*/
|
||||
|
||||
#define BITMAP_BYTES(size) (((size)+7)>>3)
|
||||
#define DEF_BITMAP(name, size) unsigned char name[BITMAP_BYTES(size)]
|
||||
#define SET_BITMAP(name, bit) ( name[(bit)>>3] |= (1<<((bit)&7)) )
|
||||
#define CLR_BITMAP(name, bit) ( name[(bit)>>3] &= ~(1<<((bit)&7)) )
|
||||
#define IS_BITMAP(name, bit) ( name[(bit)>>3] & (1<<((bit)&7)) )
|
||||
|
||||
/* debugging */
|
||||
|
||||
/* debug flags */
|
||||
#define DEBUG_UNICODE 0x00000001 /* unicode to 8-bit code conversion */
|
||||
#define DEBUG_MAINSTEMS 0x00000002 /* glyph-wide main stem generation */
|
||||
#define DEBUG_SUBSTEMS 0x00000004 /* substituted stem generation */
|
||||
#define DEBUG_STEMS (DEBUG_MAINSTEMS|DEBUG_SUBSTEMS)
|
||||
#define DEBUG_REVERSAL 0x00000008 /* reversal of the paths */
|
||||
#define DEBUG_FIXCVDIR 0x00000010 /* fixcvdir() */
|
||||
#define DEBUG_STEMOVERLAP 0x00000020 /* stemoverlap() */
|
||||
#define DEBUG_BLUESTEMS 0x00000040 /* markbluestems() */
|
||||
#define DEBUG_STRAIGHTEN 0x00000080 /* markbluestems() */
|
||||
#define DEBUG_EXTMAP 0x00000100 /* parsing of external map */
|
||||
#define DEBUG_TOINT 0x00000200 /* conversion of path to integer */
|
||||
#define DEBUG_BUILDG 0x00000400 /* building of glyph path */
|
||||
#define DEBUG_QUAD 0x00000800 /* splitting curves by quadrants */
|
||||
#define DEBUG_SQEQ 0x00001000 /* square equation solver */
|
||||
#define DEBUG_COMPOSITE 0x00002000 /* handling of composite glyphs */
|
||||
#define DEBUG_FCONCISE 0x00004000 /* normalization of curves */
|
||||
#define DEBUG_FT 0x00008000 /* FreeType front-end */
|
||||
#define DEBUG_BITMAP 0x00010000 /* conversion from bitmap */
|
||||
#define DEBUG_DISABLED 0x80000000 /* special flag: temporary disable debugging */
|
||||
|
||||
/* at what we want to look now */
|
||||
#ifndef DEBUG
|
||||
# define DEBUG (0)
|
||||
#endif
|
||||
|
||||
/* uncomment the next line if debugging data is wanted for one glyph only */
|
||||
/* #define DBG_GLYPH "C118" /* */
|
||||
|
||||
#if DEBUG==0
|
||||
# define ISDBG(name) (0)
|
||||
# define ENABLEDBG(condition) (0)
|
||||
# define DISABLEDBG(condition) (0)
|
||||
#else
|
||||
extern int debug; /* collection of the flags */
|
||||
/* this ISDBG will only work on ANSI C, not K&R */
|
||||
# define ISDBG(name) ( (debug & DEBUG_DISABLED) ? 0 : (debug & (DEBUG_##name)) )
|
||||
# define ENABLEDBG(condition) ( (condition) ? (debug&=~DEBUG_DISABLED) : 0 )
|
||||
# define DISABLEDBG(condition) ( (condition) ? (debug|=DEBUG_DISABLED) : 0 )
|
||||
#endif
|
||||
|
||||
#ifdef DBG_GLYPH
|
||||
# define DBG_TO_GLYPH(g) DISABLEDBG( strcmp( (g)->name, DBG_GLYPH ) )
|
||||
# define DBG_FROM_GLYPH(g) ENABLEDBG(1)
|
||||
#else
|
||||
# define DBG_TO_GLYPH(g) (0)
|
||||
# define DBG_FROM_GLYPH(g) (0)
|
||||
#endif
|
||||
|
||||
/* prototypes */
|
||||
int iscale( int val);
|
||||
double fscale( double val);
|
||||
int unicode_rev_lookup( int unival);
|
||||
void bmp_outline( GLYPH *g, int scale, char *bmap,
|
||||
int xsz, int ysz, int xoff, int yoff);
|
||||
int isign( int x);
|
||||
int fsign( double x);
|
||||
char *dupcnstring( unsigned char *s, int len);
|
||||
|
||||
/* global metrics for a font */
|
||||
|
||||
struct font_metrics {
|
||||
/* post */
|
||||
double italic_angle;
|
||||
short underline_position;
|
||||
short underline_thickness;
|
||||
short is_fixed_pitch;
|
||||
|
||||
/* hhea */
|
||||
short ascender;
|
||||
short descender;
|
||||
|
||||
/* head */
|
||||
unsigned short units_per_em;
|
||||
short bbox[4];
|
||||
|
||||
/* name */
|
||||
char *name_copyright;
|
||||
char *name_family;
|
||||
char *name_style;
|
||||
char *name_full;
|
||||
char *name_version;
|
||||
char *name_ps;
|
||||
|
||||
/* other */
|
||||
int force_bold;
|
||||
};
|
||||
|
||||
/* size of the encoding table - glyphs beyond 255 are actually unnumbered */
|
||||
|
||||
#define ENCTABSZ 1024
|
||||
|
||||
/* switch table structure for front-ends */
|
||||
|
||||
#define MAXSUFFIX 10
|
||||
|
||||
struct frontsw {
|
||||
char *name; /* name of the front end */
|
||||
char *descr; /* description of the front end */
|
||||
char *suffix[MAXSUFFIX]; /* possible file name suffixes */
|
||||
|
||||
void (*open)(char *fname, char *arg); /* open font file */
|
||||
void (*close)(void); /* close font file */
|
||||
int (*nglyphs)(void); /* get the number of glyphs */
|
||||
int (*glnames)(GLYPH *glyphs); /* get the names of glyphs */
|
||||
void (*glmetrics)(GLYPH *glyphs); /* get the metrics of glyphs */
|
||||
int (*glenc)(GLYPH *glyphs, int *enc, int *unimap); /* get the encoding */
|
||||
void (*fnmetrics)(struct font_metrics *fm); /* get the font metrics */
|
||||
void (*glpath)(int glyphno, GLYPH *glyphs); /* get the glyph path */
|
||||
void (*kerning)(GLYPH *glyph_list); /* extract the kerning data */
|
||||
};
|
||||
254
pdf/lib/ttf2ufm/src/maps/CP1250.map
Executable file
254
pdf/lib/ttf2ufm/src/maps/CP1250.map
Executable file
@@ -0,0 +1,254 @@
|
||||
// CP1250 code encoding table with glyph renaming
|
||||
// Petr Titera P.Titera@sh.cvut.cz
|
||||
|
||||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quote
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D minus
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC .notdef
|
||||
!82 U+201A quotesinglbase
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!89 U+2030 perthousand
|
||||
!8A U+0160 Scaron
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+015A Sacute
|
||||
!8D U+0164 Tcaron
|
||||
!8E U+017D Zcaron
|
||||
!8F U+0179 Zacute
|
||||
!91 U+2018 quotesinglleft
|
||||
!92 U+2019 quotesinglright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!99 U+2122 trademark
|
||||
!9A U+0161 scaron
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+015B sacute
|
||||
!9D U+0165 tcaron
|
||||
!9E U+017E zcaron
|
||||
!9F U+017A zacute
|
||||
!A0 U+00A0 nbspace
|
||||
!A1 U+02C7 caron
|
||||
!A2 U+02D8 breve
|
||||
!A3 U+0141 Lslash
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+0104 Aogonek
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+015E Scedilla
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC notsign
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+017B Zdotaccent
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+02DB ogonek
|
||||
!B3 U+0142 lslash
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+2219 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+0105 aogonek
|
||||
!BA U+015F scedilla
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+013D Lcaron
|
||||
!BD U+02DD hungarumlaut
|
||||
!BE U+013E lcaron
|
||||
!BF U+017C zdotaccent
|
||||
!C0 U+0154 Racute
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+0102 Abreve
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+0139 Lacute
|
||||
!C6 U+0106 Cacute
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+010C Ccaron
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+0118 Eogonek
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+011A Ecaron
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+010E Dcaron
|
||||
!D0 U+00D0 Eth
|
||||
!D1 U+0143 Nacute
|
||||
!D2 U+0147 Ncaron
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+0150 Ohungarumlaut
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+0158 Rcaron
|
||||
!D9 U+016E Uring
|
||||
!DA U+00DA Uacute
|
||||
!DB U+0170 Uhungarumlaut
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+00DD Yacute
|
||||
!DE U+0162 Tcedilla
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+0155 racute
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+0103 abreve
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+013A lacute
|
||||
!E6 U+0107 cacute
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+010D ccaron
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+0119 eogonek
|
||||
!EB U+00EB edieresis
|
||||
!EC U+011B ecaron
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+010F dcaron
|
||||
!F0 U+0111 eth
|
||||
!F1 U+0144 nacute
|
||||
!F2 U+0148 ncaron
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+0151 ohungarumlaut
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+0159 rcaron
|
||||
!F9 U+016F uring
|
||||
!FA U+00FA uacute
|
||||
!FB U+0171 uhungarumlaut
|
||||
!FC U+00FC udieresis
|
||||
!FD U+00FD yacute
|
||||
!FE U+0163 tcedilla
|
||||
!FF U+02D9 dotaccent
|
||||
245
pdf/lib/ttf2ufm/src/maps/CP1251.map
Executable file
245
pdf/lib/ttf2ufm/src/maps/CP1251.map
Executable file
@@ -0,0 +1,245 @@
|
||||
// CP1251 encoding table
|
||||
// Zvezdan Petkovic <z.petkovic@computer.org>
|
||||
|
||||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quote
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D minus
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0402 cyr_DJE
|
||||
!81 U+0403 cyr_GJE
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0453 cyr_gje
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!88 U+20AC Euro
|
||||
!89 U+2030 perthousand
|
||||
!8A U+0409 cyr_LJE
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+040A cyr_NJE
|
||||
!8D U+040C cyr_KJE
|
||||
!8E U+040B cyr_TSHE
|
||||
!8F U+040F cyr_DZHE
|
||||
!90 U+0452 cyr_dje
|
||||
!91 U+2018 quotesinglleft
|
||||
!92 U+2019 quotesinglright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!99 U+2122 trademark
|
||||
!9A U+0459 cyr_lje
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+045A cyr_nje
|
||||
!9D U+045C cyr_kje
|
||||
!9E U+045B cyr_tshe
|
||||
!9F U+045F cyr_dzhe
|
||||
!A0 U+00A0 nbspace
|
||||
!A1 U+040E cyr_SHORT_U
|
||||
!A2 U+045E cyr_short_u
|
||||
!A3 U+0408 cyr_JE
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+0490 cyr_GHE_UPTURN
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+0401 cyr_IO
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+0404 cyr_UKRAINIAN_IE
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC notsign
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+0407 cyr_YI
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+0406 cyr_BYELORUSSIAN_UKRAINIAN_I
|
||||
!B3 U+0456 cyr_byelorussian_ukrainian_i
|
||||
!B4 U+0491 cyr_ghe_upturn
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+0451 cyr_io
|
||||
!B9 U+2116 numero
|
||||
!BA U+0454 cyr_ukrainian_ie
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+0458 cyr_je
|
||||
!BD U+0405 cyr_DZE
|
||||
!BE U+0455 cyr_dze
|
||||
!BF U+0457 cyr_yi
|
||||
!C0 U+0410 cyr_A
|
||||
!C1 U+0411 cyr_BE
|
||||
!C2 U+0412 cyr_VE
|
||||
!C3 U+0413 cyr_GHE
|
||||
!C4 U+0414 cyr_DE
|
||||
!C5 U+0415 cyr_IE
|
||||
!C6 U+0416 cyr_ZHE
|
||||
!C7 U+0417 cyr_ZE
|
||||
!C8 U+0418 cyr_I
|
||||
!C9 U+0419 cyr_SHORT_I
|
||||
!CA U+041A cyr_KA
|
||||
!CB U+041B cyr_EL
|
||||
!CC U+041C cyr_EM
|
||||
!CD U+041D cyr_EN
|
||||
!CE U+041E cyr_O
|
||||
!CF U+041F cyr_PE
|
||||
!D0 U+0420 cyr_ER
|
||||
!D1 U+0421 cyr_ES
|
||||
!D2 U+0422 cyr_TE
|
||||
!D3 U+0423 cyr_U
|
||||
!D4 U+0424 cyr_EF
|
||||
!D5 U+0425 cyr_HA
|
||||
!D6 U+0426 cyr_TSE
|
||||
!D7 U+0427 cyr_CHE
|
||||
!D8 U+0428 cyr_SHA
|
||||
!D9 U+0429 cyr_SHCHA
|
||||
!DA U+042A cyr_HARD_SIGN
|
||||
!DB U+042B cyr_YERU
|
||||
!DC U+042C cyr_SOFT_SIGN
|
||||
!DD U+042D cyr_E
|
||||
!DE U+042E cyr_YU
|
||||
!DF U+042F cyr_YA
|
||||
!E0 U+0430 cyr_a
|
||||
!E1 U+0431 cyr_be
|
||||
!E2 U+0432 cyr_ve
|
||||
!E3 U+0433 cyr_ghe
|
||||
!E4 U+0434 cyr_de
|
||||
!E5 U+0435 cyr_ie
|
||||
!E6 U+0436 cyr_zhe
|
||||
!E7 U+0437 cyr_ze
|
||||
!E8 U+0438 cyr_i
|
||||
!E9 U+0439 cyr_short_i
|
||||
!EA U+043A cyr_ka
|
||||
!EB U+043B cyr_el
|
||||
!EC U+043C cyr_em
|
||||
!ED U+043D cyr_en
|
||||
!EE U+043E cyr_o
|
||||
!EF U+043F cyr_pe
|
||||
!F0 U+0440 cyr_er
|
||||
!F1 U+0441 cyr_es
|
||||
!F2 U+0442 cyr_te
|
||||
!F3 U+0443 cyr_u
|
||||
!F4 U+0444 cyr_ef
|
||||
!F5 U+0445 cyr_ha
|
||||
!F6 U+0446 cyr_tse
|
||||
!F7 U+0447 cyr_che
|
||||
!F8 U+0448 cyr_sha
|
||||
!F9 U+0449 cyr_shcha
|
||||
!FA U+044A cyr_hard_sign
|
||||
!FB U+044B cyr_yeru
|
||||
!FC U+044C cyr_soft_sign
|
||||
!FD U+044D cyr_e
|
||||
!FE U+044E cyr_yu
|
||||
!FF U+044F cyr_ya
|
||||
111
pdf/lib/ttf2ufm/src/maps/T2A_compact.map
Executable file
111
pdf/lib/ttf2ufm/src/maps/T2A_compact.map
Executable file
@@ -0,0 +1,111 @@
|
||||
// Map file to make PFA/PFB files with T2A encoding
|
||||
// from TTF using ttf2pt1 package. See package documentation for details.
|
||||
// The encoding is incomplete but some (many) glyphs do not exist in TTF.
|
||||
// Mikhail Umorin mikeumo@obebox.com
|
||||
//start at 0
|
||||
0x0060
|
||||
0x00B4
|
||||
0x02C6
|
||||
0x02DC
|
||||
0x00A8
|
||||
0x02DD
|
||||
0x02DA
|
||||
0x02C7
|
||||
0x02D8
|
||||
0x00AF
|
||||
0x02D9
|
||||
// at 0x000B (11)
|
||||
// will set more later
|
||||
0x00B8
|
||||
0x02DB
|
||||
0x0130
|
||||
0x2039
|
||||
0x203A
|
||||
0x201C
|
||||
0x201D
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x2013
|
||||
0x2014
|
||||
0x0000
|
||||
0x0000
|
||||
0x0131
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
// at 0x0020 (32)
|
||||
0x0020-0x005F
|
||||
// at 0x0060 (96)
|
||||
0x2018
|
||||
// at 0x0061 (97)
|
||||
0x0061-0x007E
|
||||
0x00AD
|
||||
//this ends the lower half of the table: 0x007F (127)
|
||||
// at 0x008F
|
||||
0x0490
|
||||
0x0000
|
||||
0x040B
|
||||
0x0402
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x0409
|
||||
0x0407
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x00C6
|
||||
0x0000
|
||||
0x0000
|
||||
0x0405
|
||||
0x0000
|
||||
0x00C7
|
||||
0x040E
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x040F
|
||||
0x0000
|
||||
0x0000
|
||||
0x0404
|
||||
0x0000
|
||||
// at 155
|
||||
0x040A, 0x0401, 0x2116, 0x00A4, 0x00A7
|
||||
// at A0 (160)
|
||||
0x0491
|
||||
0x0000
|
||||
0x045B
|
||||
0x0452
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x0459
|
||||
0x0457
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x00E6
|
||||
0x0000
|
||||
0x0000
|
||||
0x0455
|
||||
0x0000
|
||||
0x00E7
|
||||
0x045E
|
||||
0x0000
|
||||
0x0000
|
||||
0x0000
|
||||
0x045F
|
||||
0x0000
|
||||
0x0000
|
||||
0x0454
|
||||
0x0000
|
||||
// at 187
|
||||
0x045A, 0x0451, 0x201E, 0x00AB, 0x00BB
|
||||
// at 192
|
||||
0x0410-0x044F
|
||||
// this concludes the upper half of the table
|
||||
|
||||
231
pdf/lib/ttf2ufm/src/maps/adobe-standard-encoding.map
Executable file
231
pdf/lib/ttf2ufm/src/maps/adobe-standard-encoding.map
Executable file
@@ -0,0 +1,231 @@
|
||||
// Adobe Standard Encoding table for ttf2pt1
|
||||
// Thomas Henlich <Thomas.Henlich@mailbox.tu-dresden.de>
|
||||
|
||||
=20 U+0020 SPACE
|
||||
=21 U+0021 EXCLAMATION MARK
|
||||
=22 U+0022 QUOTATION MARK
|
||||
=23 U+0023 NUMBER SIGN
|
||||
=24 U+0024 DOLLAR SIGN
|
||||
=25 U+0025 PERCENT SIGN
|
||||
=26 U+0026 AMPERSAND
|
||||
=27 U+2019 RIGHT SINGLE QUOTATION MARK
|
||||
=28 U+0028 LEFT PARENTHESIS
|
||||
=29 U+0029 RIGHT PARENTHESIS
|
||||
=2A U+002A ASTERISK
|
||||
=2B U+002B PLUS SIGN
|
||||
=2C U+002C COMMA
|
||||
=2D U+002D HYPHEN-MINUS
|
||||
=2E U+002E FULL STOP
|
||||
=2F U+002F SOLIDUS
|
||||
=30 U+0030 DIGIT ZERO
|
||||
=31 U+0031 DIGIT ONE
|
||||
=32 U+0032 DIGIT TWO
|
||||
=33 U+0033 DIGIT THREE
|
||||
=34 U+0034 DIGIT FOUR
|
||||
=35 U+0035 DIGIT FIVE
|
||||
=36 U+0036 DIGIT SIX
|
||||
=37 U+0037 DIGIT SEVEN
|
||||
=38 U+0038 DIGIT EIGHT
|
||||
=39 U+0039 DIGIT NINE
|
||||
=3A U+003A COLON
|
||||
=3B U+003B SEMICOLON
|
||||
=3C U+003C LESS-THAN SIGN
|
||||
=3D U+003D EQUALS SIGN
|
||||
=3E U+003E GREATER-THAN SIGN
|
||||
=3F U+003F QUESTION MARK
|
||||
=40 U+0040 COMMERCIAL AT
|
||||
=41 U+0041 LATIN CAPITAL LETTER A
|
||||
=42 U+0042 LATIN CAPITAL LETTER B
|
||||
=43 U+0043 LATIN CAPITAL LETTER C
|
||||
=44 U+0044 LATIN CAPITAL LETTER D
|
||||
=45 U+0045 LATIN CAPITAL LETTER E
|
||||
=46 U+0046 LATIN CAPITAL LETTER F
|
||||
=47 U+0047 LATIN CAPITAL LETTER G
|
||||
=48 U+0048 LATIN CAPITAL LETTER H
|
||||
=49 U+0049 LATIN CAPITAL LETTER I
|
||||
=4A U+004A LATIN CAPITAL LETTER J
|
||||
=4B U+004B LATIN CAPITAL LETTER K
|
||||
=4C U+004C LATIN CAPITAL LETTER L
|
||||
=4D U+004D LATIN CAPITAL LETTER M
|
||||
=4E U+004E LATIN CAPITAL LETTER N
|
||||
=4F U+004F LATIN CAPITAL LETTER O
|
||||
=50 U+0050 LATIN CAPITAL LETTER P
|
||||
=51 U+0051 LATIN CAPITAL LETTER Q
|
||||
=52 U+0052 LATIN CAPITAL LETTER R
|
||||
=53 U+0053 LATIN CAPITAL LETTER S
|
||||
=54 U+0054 LATIN CAPITAL LETTER T
|
||||
=55 U+0055 LATIN CAPITAL LETTER U
|
||||
=56 U+0056 LATIN CAPITAL LETTER V
|
||||
=57 U+0057 LATIN CAPITAL LETTER W
|
||||
=58 U+0058 LATIN CAPITAL LETTER X
|
||||
=59 U+0059 LATIN CAPITAL LETTER Y
|
||||
=5A U+005A LATIN CAPITAL LETTER Z
|
||||
=5B U+005B LEFT SQUARE BRACKET
|
||||
=5C U+005C REVERSE SOLIDUS
|
||||
=5D U+005D RIGHT SQUARE BRACKET
|
||||
=5E U+005E CIRCUMFLEX ACCENT
|
||||
=5F U+005F LOW LINE
|
||||
=60 U+2018 LEFT SINGLE QUOTATION MARK
|
||||
=61 U+0061 LATIN SMALL LETTER A
|
||||
=62 U+0062 LATIN SMALL LETTER B
|
||||
=63 U+0063 LATIN SMALL LETTER C
|
||||
=64 U+0064 LATIN SMALL LETTER D
|
||||
=65 U+0065 LATIN SMALL LETTER E
|
||||
=66 U+0066 LATIN SMALL LETTER F
|
||||
=67 U+0067 LATIN SMALL LETTER G
|
||||
=68 U+0068 LATIN SMALL LETTER H
|
||||
=69 U+0069 LATIN SMALL LETTER I
|
||||
=6A U+006A LATIN SMALL LETTER J
|
||||
=6B U+006B LATIN SMALL LETTER K
|
||||
=6C U+006C LATIN SMALL LETTER L
|
||||
=6D U+006D LATIN SMALL LETTER M
|
||||
=6E U+006E LATIN SMALL LETTER N
|
||||
=6F U+006F LATIN SMALL LETTER O
|
||||
=70 U+0070 LATIN SMALL LETTER P
|
||||
=71 U+0071 LATIN SMALL LETTER Q
|
||||
=72 U+0072 LATIN SMALL LETTER R
|
||||
=73 U+0073 LATIN SMALL LETTER S
|
||||
=74 U+0074 LATIN SMALL LETTER T
|
||||
=75 U+0075 LATIN SMALL LETTER U
|
||||
=76 U+0076 LATIN SMALL LETTER V
|
||||
=77 U+0077 LATIN SMALL LETTER W
|
||||
=78 U+0078 LATIN SMALL LETTER X
|
||||
=79 U+0079 LATIN SMALL LETTER Y
|
||||
=7A U+007A LATIN SMALL LETTER Z
|
||||
=7B U+007B LEFT CURLY BRACKET
|
||||
=7C U+007C VERTICAL LINE
|
||||
=7D U+007D RIGHT CURLY BRACKET
|
||||
=7E U+007E TILDE
|
||||
=A1 U+00A1 INVERTED EXCLAMATION MARK
|
||||
=A2 U+00A2 CENT SIGN
|
||||
=A3 U+00A3 POUND SIGN
|
||||
=A4 U+2044 FRACTION SLASH
|
||||
=A5 U+00A5 YEN SIGN
|
||||
=A6 U+0192 LATIN SMALL LETTER F WITH HOOK
|
||||
=A7 U+00A7 SECTION SIGN
|
||||
=A8 U+00A4 CURRENCY SIGN
|
||||
=A9 U+0027 APOSTROPHE
|
||||
=AA U+201C LEFT DOUBLE QUOTATION MARK
|
||||
=AB U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
=AC U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
=AD U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
=AE U+FB01 LATIN SMALL LIGATURE FI
|
||||
=AF U+FB02 LATIN SMALL LIGATURE FL
|
||||
=B1 U+2013 EN DASH
|
||||
=B2 U+2020 DAGGER
|
||||
=B3 U+2021 DOUBLE DAGGER
|
||||
=B4 U+00B7 MIDDLE DOT
|
||||
=B6 U+00B6 PILCROW SIGN
|
||||
=B7 U+2022 BULLET
|
||||
=B8 U+201A SINGLE LOW-9 QUOTATION MARK
|
||||
=B9 U+201E DOUBLE LOW-9 QUOTATION MARK
|
||||
=BA U+201D RIGHT DOUBLE QUOTATION MARK
|
||||
=BB U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
=BC U+2026 HORIZONTAL ELLIPSIS
|
||||
=BD U+2030 PER MILLE SIGN
|
||||
=BF U+00BF INVERTED QUESTION MARK
|
||||
=C1 U+0060 GRAVE ACCENT
|
||||
=C2 U+00B4 ACUTE ACCENT
|
||||
=C3 U+02C6 MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
=C4 U+02DC SMALL TILDE
|
||||
=C5 U+00AF MACRON
|
||||
=C6 U+02D8 BREVE
|
||||
=C7 U+02D9 DOT ABOVE
|
||||
=C8 U+00A8 DIAERESIS
|
||||
=CA U+02DA RING ABOVE
|
||||
=CB U+00B8 CEDILLA
|
||||
=CD U+02DD DOUBLE ACUTE ACCENT
|
||||
=CE U+02DB OGONEK
|
||||
=CF U+02C7 CARON
|
||||
=D0 U+2014 EM DASH
|
||||
=E1 U+00C6 LATIN CAPITAL LETTER AE
|
||||
=E3 U+00AA FEMININE ORDINAL INDICATOR
|
||||
=E8 U+0141 LATIN CAPITAL LETTER L WITH STROKE
|
||||
=E9 U+00D8 LATIN CAPITAL LETTER O WITH STROKE
|
||||
=EA U+0152 LATIN CAPITAL LIGATURE OE
|
||||
=EB U+00BA MASCULINE ORDINAL INDICATOR
|
||||
=F1 U+00E6 LATIN SMALL LETTER AE
|
||||
=F5 U+0131 LATIN SMALL LETTER DOTLESS I
|
||||
=F8 U+0142 LATIN SMALL LETTER L WITH STROKE
|
||||
=F9 U+00F8 LATIN SMALL LETTER O WITH STROKE
|
||||
=FA U+0153 LATIN SMALL LIGATURE OE
|
||||
=FB U+00DF LATIN SMALL LETTER SHARP S
|
||||
|
||||
// unencoded characters:
|
||||
=100 U+00E7 LATIN SMALL LETTER C WITH CEDILLA
|
||||
=101 U+00FF LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
=102 U+00E3 LATIN SMALL LETTER A WITH TILDE
|
||||
=103 U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
=104 U+00B3 SUPERSCRIPT THREE
|
||||
=105 U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
=106 U+00FE LATIN SMALL LETTER THORN
|
||||
=107 U+00E8 LATIN SMALL LETTER E WITH GRAVE
|
||||
=108 U+00B2 SUPERSCRIPT TWO
|
||||
=109 U+00E9 LATIN SMALL LETTER E WITH ACUTE
|
||||
=10A U+00F5 LATIN SMALL LETTER O WITH TILDE
|
||||
=10B U+00C1 LATIN CAPITAL LETTER A WITH ACUTE
|
||||
=10C U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
=10D U+00FD LATIN SMALL LETTER Y WITH ACUTE
|
||||
=10E U+00FC LATIN SMALL LETTER U WITH DIAERESIS
|
||||
=10F U+00BE VULGAR FRACTION THREE QUARTERS
|
||||
=110 U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
=111 U+00D0 LATIN CAPITAL LETTER ETH
|
||||
=112 U+00EB LATIN SMALL LETTER E WITH DIAERESIS
|
||||
=113 U+00F9 LATIN SMALL LETTER U WITH GRAVE
|
||||
=114 U+2122 TRADE MARK SIGN
|
||||
=115 U+00F2 LATIN SMALL LETTER O WITH GRAVE
|
||||
=116 U+0161 LATIN SMALL LETTER S WITH CARON
|
||||
=117 U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
=118 U+00FA LATIN SMALL LETTER U WITH ACUTE
|
||||
=119 U+00E0 LATIN SMALL LETTER A WITH GRAVE
|
||||
=11A U+00F1 LATIN SMALL LETTER N WITH TILDE
|
||||
=11B U+00E5 LATIN SMALL LETTER A WITH RING ABOVE
|
||||
=11C U+017E LATIN SMALL LETTER Z WITH CARON
|
||||
=11D U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
=11E U+00D1 LATIN CAPITAL LETTER N WITH TILDE
|
||||
=11F U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
=120 U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
=121 U+00CD LATIN CAPITAL LETTER I WITH ACUTE
|
||||
=122 U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
=123 U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
=124 U+0160 LATIN CAPITAL LETTER S WITH CARON
|
||||
=125 U+00CC LATIN CAPITAL LETTER I WITH GRAVE
|
||||
=126 U+00E4 LATIN SMALL LETTER A WITH DIAERESIS
|
||||
=127 U+00D2 LATIN CAPITAL LETTER O WITH GRAVE
|
||||
=128 U+00C8 LATIN CAPITAL LETTER E WITH GRAVE
|
||||
=129 U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
=12A U+00AE REGISTERED SIGN
|
||||
=12B U+00D5 LATIN CAPITAL LETTER O WITH TILDE
|
||||
=12C U+00BC VULGAR FRACTION ONE QUARTER
|
||||
=12D U+00D9 LATIN CAPITAL LETTER U WITH GRAVE
|
||||
=12E U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
=12F U+00DE LATIN CAPITAL LETTER THORN
|
||||
=130 U+00F7 DIVISION SIGN
|
||||
=131 U+00C3 LATIN CAPITAL LETTER A WITH TILDE
|
||||
=132 U+00DA LATIN CAPITAL LETTER U WITH ACUTE
|
||||
=133 U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
=134 U+00AC NOT SIGN
|
||||
=135 U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
=136 U+00EF LATIN SMALL LETTER I WITH DIAERESIS
|
||||
=137 U+00ED LATIN SMALL LETTER I WITH ACUTE
|
||||
=138 U+00E1 LATIN SMALL LETTER A WITH ACUTE
|
||||
=139 U+00B1 PLUS-MINUS SIGN
|
||||
=13A U+00D7 MULTIPLICATION SIGN
|
||||
=13B U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
=13C U+2212 MINUS SIGN
|
||||
=13D U+00B9 SUPERSCRIPT ONE
|
||||
=13E U+00C9 LATIN CAPITAL LETTER E WITH ACUTE
|
||||
=13F U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
=140 U+00A9 COPYRIGHT SIGN
|
||||
=141 U+00C0 LATIN CAPITAL LETTER A WITH GRAVE
|
||||
=142 U+00F6 LATIN SMALL LETTER O WITH DIAERESIS
|
||||
=143 U+00F3 LATIN SMALL LETTER O WITH ACUTE
|
||||
=144 U+00B0 DEGREE SIGN
|
||||
=145 U+00EC LATIN SMALL LETTER I WITH GRAVE
|
||||
=146 U+00B5 MICRO SIGN
|
||||
=147 U+00D3 LATIN CAPITAL LETTER O WITH ACUTE
|
||||
=148 U+00F0 LATIN SMALL LETTER ETH
|
||||
=149 U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
=14A U+00DD LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
=14B U+00A6 BROKEN BAR
|
||||
=14C U+00BD VULGAR FRACTION ONE HALF
|
||||
3184
pdf/lib/ttf2ufm/src/maps/cubg5plus.map
Executable file
3184
pdf/lib/ttf2ufm/src/maps/cubg5plus.map
Executable file
File diff suppressed because it is too large
Load Diff
1861
pdf/lib/ttf2ufm/src/maps/cubig5.map
Executable file
1861
pdf/lib/ttf2ufm/src/maps/cubig5.map
Executable file
File diff suppressed because it is too large
Load Diff
1181
pdf/lib/ttf2ufm/src/maps/cugb.map
Executable file
1181
pdf/lib/ttf2ufm/src/maps/cugb.map
Executable file
File diff suppressed because it is too large
Load Diff
3185
pdf/lib/ttf2ufm/src/maps/cugbk.map
Executable file
3185
pdf/lib/ttf2ufm/src/maps/cugbk.map
Executable file
File diff suppressed because it is too large
Load Diff
2184
pdf/lib/ttf2ufm/src/maps/ubig5.map
Executable file
2184
pdf/lib/ttf2ufm/src/maps/ubig5.map
Executable file
File diff suppressed because it is too large
Load Diff
1236
pdf/lib/ttf2ufm/src/maps/ugb.map
Executable file
1236
pdf/lib/ttf2ufm/src/maps/ugb.map
Executable file
File diff suppressed because it is too large
Load Diff
3295
pdf/lib/ttf2ufm/src/maps/ugbk.map
Executable file
3295
pdf/lib/ttf2ufm/src/maps/ugbk.map
Executable file
File diff suppressed because it is too large
Load Diff
158
pdf/lib/ttf2ufm/src/maps/unicode-sample.map
Executable file
158
pdf/lib/ttf2ufm/src/maps/unicode-sample.map
Executable file
@@ -0,0 +1,158 @@
|
||||
# this file is a sample Unicode map description.
|
||||
# It describes which glyphs are to be included in the font
|
||||
# and at which character position they are to be put.
|
||||
|
||||
# If the character position is greater than 255, the glyph is included, but
|
||||
# does not appear in the encoding table (you must then use font reencoding
|
||||
# to use this glyph).
|
||||
# That makes it possible to have more than 256 glyphs in a font.
|
||||
# Currently the maximum supported number of glyphs is 1024.
|
||||
|
||||
# Use this file as the argument to ttf2pt1's -L option.
|
||||
|
||||
# 1999-11-24 Thomas.Henlich@mailbox.tu-dresden.de
|
||||
# 2000-03-01 Sergey Babkin: added 3rd format
|
||||
|
||||
# comment lines start with '#' or '%' or '//'
|
||||
|
||||
# The default source encoding table in the TTF file is Unicode (pid=3,eid=1).
|
||||
# However a map may specify another source encoding with the "id <pid> <eid>"
|
||||
# directive. If this directive is used at the beginning of the map file,
|
||||
# it applies to the whole file. If it is used after a "plane" directive,
|
||||
# then it sets the source encoding for this particular destination plane
|
||||
# (possibly overriding the file-wide id directive). The user can also
|
||||
# specify the source encoding explicitly at the comman line in the
|
||||
# argument to the option -L. This used-specified source encoding overrides
|
||||
# any id directives in the map file.
|
||||
|
||||
# examples:
|
||||
|
||||
# same as Unicode (default)
|
||||
id 3 1
|
||||
|
||||
# One file may contain multiple actual translation tables. Each particular
|
||||
# table within a file is named a plane. The primary use of planes is
|
||||
# for multi-plane Eastern fonts with over 256 glyphs: for them one TTF
|
||||
# file gets converted into multiple Type1 files, with each resulting file
|
||||
# containing one plane of the original font. But they may also be used
|
||||
# in other creative ways. Each plane may be specified in different format
|
||||
# although this is not recommended for aesthetical reasons. If a map file
|
||||
# contains any specifications of planes then the plane argument MUST
|
||||
# be specified to the converter with that map file. If a map file
|
||||
# contains no specifications of planes then the plane argument MUST NOT
|
||||
# be specified to the converter with that map file.
|
||||
#
|
||||
# The plane maps start from the plane directive and continue to the next
|
||||
# plane directive or end of file. The plane directive must be located
|
||||
# at the very beginning of a separate string and contain the word "plane"
|
||||
# followed by whitespace and the plane name. The whitespace characters
|
||||
# are not allowed in the plane names. Non-alphanumeric characters are
|
||||
# discouraged in the plane names as well.
|
||||
|
||||
# examples:
|
||||
|
||||
plane 81
|
||||
=27 U+0027 APOSTROPHE
|
||||
|
||||
plane otherplane
|
||||
0, 1, 2
|
||||
|
||||
|
||||
% There is one code assignment per line.
|
||||
// Three formats are recognized:
|
||||
# 1. optional whitespace, followed by '=', followed by a hex number
|
||||
# (character position), followed by optional whitespace, followed by
|
||||
# 'U+', followed by a four-digit hex number (the Unicode of the glyph we want
|
||||
# here), followed by any number of characters.
|
||||
|
||||
// example:
|
||||
|
||||
=20 U+0020 SPACE
|
||||
=48 U+0021 EXCLAMATION MARK
|
||||
=22 U+0022 QUOTATION MARK
|
||||
=23 U+0023 NUMBER SIGN
|
||||
=24 U+0024 DOLLAR SIGN
|
||||
=25 U+0025 PERCENT SIGN
|
||||
=26 U+0026 AMPERSAND
|
||||
=27 U+0027 APOSTROPHE
|
||||
|
||||
=E0 U+042E CYRILLIC CAPITAL LETTER YU
|
||||
=E1 U+0410 CYRILLIC CAPITAL LETTER A
|
||||
=E2 U+0411 CYRILLIC CAPITAL LETTER BE
|
||||
=E3 U+0426 CYRILLIC CAPITAL LETTER TSE
|
||||
=E4 U+0414 CYRILLIC CAPITAL LETTER DE
|
||||
=E5 U+0415 CYRILLIC CAPITAL LETTER IE
|
||||
=E6 U+0424 CYRILLIC CAPITAL LETTER EF
|
||||
=E7 U+0413 CYRILLIC CAPITAL LETTER GHE
|
||||
|
||||
% 2. optional whitespace, followed by '<', followed by one or more
|
||||
% non-whitespace characters,
|
||||
% followed by optional whitespace, followed by '/x', followed by
|
||||
% a hex number (character position), followed by optional
|
||||
% whitespace, followed by '<U', followed by a four-digit hex number
|
||||
% (the Unicode of the glyph we want here), followed by '>' and any number
|
||||
% of characters.
|
||||
|
||||
# example:
|
||||
|
||||
<I> /x40 <U0049> LATIN CAPITAL LETTER I
|
||||
<t> /x41 <U0074> LATIN SMALL LETTER T
|
||||
<r> /x43 <U0072> LATIN SMALL LETTER R
|
||||
<o> /x44 <U006F> LATIN SMALL LETTER O
|
||||
<c> /x45 <U0063> LATIN SMALL LETTER C
|
||||
<k> /x46 <U006B> LATIN SMALL LETTER K
|
||||
<s> /x47 <U0073> LATIN SMALL LETTER S
|
||||
|
||||
<Eu> /xA4 <U20AC> EURO SIGN
|
||||
|
||||
# 3. optional whitespace, followed by '!', followed by a hex number
|
||||
# (character position), followed by optional whitespace, followed by
|
||||
# 'U+', followed by a four-digit hex number (the Unicode of the glyph we want
|
||||
# here), followed by the name of the glyph that will be used in the
|
||||
# output file.
|
||||
|
||||
# example:
|
||||
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
|
||||
# 4. compact format: just list of unicodes separated by commas or ranges
|
||||
# denoted by a dash between unicodes. These unicodes are mapped to
|
||||
# the output codes starting from 0 and continuously increasing.
|
||||
# It is possible to reset the current code by using the "at" directive
|
||||
# which must start at beginning of the line and give the new current
|
||||
# output code (which will be assigned to the next occuring unicode)
|
||||
# as decimal, hexadecimal or octal in C notation. The "at directive must
|
||||
# take a separate line. The spaces around unicodes don't matter.
|
||||
|
||||
# example:
|
||||
# map unicodes 0x40, 0x400, 0x4000 to the output codes 0, 1, 2 and unicodes
|
||||
# 0xf010 - 0xf020, 0xf030 to the output codes 0x11-0x22
|
||||
|
||||
0, 1, 2
|
||||
at 0x11
|
||||
0xf010- 0xf020, 0xf030
|
||||
|
||||
|
||||
# the first format is used by Roman Czyborra on his fine WWW pages:
|
||||
# http://czyborra.com/charsets/iso8859.html
|
||||
|
||||
# the second format is used in the Linux locale charmaps files:
|
||||
# /usr/share/i18n/charmaps/*
|
||||
|
||||
# we don't need those glyphs in the encoding table
|
||||
=100 U+0030 DIGIT ZERO
|
||||
=101 U+0031 DIGIT ONE
|
||||
=102 U+0032 DIGIT TWO
|
||||
=103 U+0033 DIGIT THREE
|
||||
=104 U+0034 DIGIT FOUR
|
||||
=105 U+0035 DIGIT FIVE
|
||||
=106 U+0036 DIGIT SIX
|
||||
=107 U+0037 DIGIT SEVEN
|
||||
=108 U+0039 DIGIT NINE
|
||||
=109 U+0038 DIGIT EIGHT
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user