mkpsenc.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:27k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # mkpsenc.tcl --
  2. #
  3. # Creates Postscript encoding vector for given encoding
  4. proc ::tk::CreatePostscriptEncoding {encoding} {
  5.     # now check for known. Even if it is known, it can be other
  6.     # than we need. GhostScript seems to be happy with such approach
  7.     set result "/CurrentEncoding [n"
  8.     for {set i 0} {$i<256} {incr i 8} {
  9.         for {set j 0} {$j<8} {incr j} {
  10.     set enc [encoding convertfrom $encoding [format %c [expr {$i+$j}]]]
  11.     if {[catch {format %04X [scan $enc %c]} hexcode]} {set hexcode {}}
  12.     if [info exists ::tk::psglyphs($hexcode)] {
  13. append result "/$::tk::psglyphs($hexcode)"
  14.     } else {
  15. append result "/space"
  16.     }
  17. }
  18. append result "n"
  19.     }
  20.     append result "] defn"
  21.     return $result
  22. }
  23. # List of adobe glyph names. Converted from glyphlist.txt, downloaded
  24. # from Adobe
  25. namespace eval ::tk {
  26. array set psglyphs {
  27.    0020 space
  28.    0021 exclam
  29.    0022 quotedbl
  30.    0023 numbersign
  31.    0024 dollar
  32.    0025 percent
  33.    0026 ampersand
  34.    0027 quotesingle
  35.    0028 parenleft
  36.    0029 parenright
  37.    002A asterisk
  38.    002B plus
  39.    002C comma
  40.    002D hyphen
  41.    002E period
  42.    002F slash
  43.    0030 zero
  44.    0031 one
  45.    0032 two
  46.    0033 three
  47.    0034 four
  48.    0035 five
  49.    0036 six
  50.    0037 seven
  51.    0038 eight
  52.    0039 nine
  53.    003A colon
  54.    003B semicolon
  55.    003C less
  56.    003D equal
  57.    003E greater
  58.    003F question
  59.    0040 at
  60.    0041 A
  61.    0042 B
  62.    0043 C
  63.    0044 D
  64.    0045 E
  65.    0046 F
  66.    0047 G
  67.    0048 H
  68.    0049 I
  69.    004A J
  70.    004B K
  71.    004C L
  72.    004D M
  73.    004E N
  74.    004F O
  75.    0050 P
  76.    0051 Q
  77.    0052 R
  78.    0053 S
  79.    0054 T
  80.    0055 U
  81.    0056 V
  82.    0057 W
  83.    0058 X
  84.    0059 Y
  85.    005A Z
  86.    005B bracketleft
  87.    005C backslash
  88.    005D bracketright
  89.    005E asciicircum
  90.    005F underscore
  91.    0060 grave
  92.    0061 a
  93.    0062 b
  94.    0063 c
  95.    0064 d
  96.    0065 e
  97.    0066 f
  98.    0067 g
  99.    0068 h
  100.    0069 i
  101.    006A j
  102.    006B k
  103.    006C l
  104.    006D m
  105.    006E n
  106.    006F o
  107.    0070 p
  108.    0071 q
  109.    0072 r
  110.    0073 s
  111.    0074 t
  112.    0075 u
  113.    0076 v
  114.    0077 w
  115.    0078 x
  116.    0079 y
  117.    007A z
  118.    007B braceleft
  119.    007C bar
  120.    007D braceright
  121.    007E asciitilde
  122.    00A0 space
  123.    00A1 exclamdown
  124.    00A2 cent
  125.    00A3 sterling
  126.    00A4 currency
  127.    00A5 yen
  128.    00A6 brokenbar
  129.    00A7 section
  130.    00A8 dieresis
  131.    00A9 copyright
  132.    00AA ordfeminine
  133.    00AB guillemotleft
  134.    00AC logicalnot
  135.    00AD hyphen
  136.    00AE registered
  137.    00AF macron
  138.    00B0 degree
  139.    00B1 plusminus
  140.    00B2 twosuperior
  141.    00B3 threesuperior
  142.    00B4 acute
  143.    00B5 mu
  144.    00B6 paragraph
  145.    00B7 periodcentered
  146.    00B8 cedilla
  147.    00B9 onesuperior
  148.    00BA ordmasculine
  149.    00BB guillemotright
  150.    00BC onequarter
  151.    00BD onehalf
  152.    00BE threequarters
  153.    00BF questiondown
  154.    00C0 Agrave
  155.    00C1 Aacute
  156.    00C2 Acircumflex
  157.    00C3 Atilde
  158.    00C4 Adieresis
  159.    00C5 Aring
  160.    00C6 AE
  161.    00C7 Ccedilla
  162.    00C8 Egrave
  163.    00C9 Eacute
  164.    00CA Ecircumflex
  165.    00CB Edieresis
  166.    00CC Igrave
  167.    00CD Iacute
  168.    00CE Icircumflex
  169.    00CF Idieresis
  170.    00D0 Eth
  171.    00D1 Ntilde
  172.    00D2 Ograve
  173.    00D3 Oacute
  174.    00D4 Ocircumflex
  175.    00D5 Otilde
  176.    00D6 Odieresis
  177.    00D7 multiply
  178.    00D8 Oslash
  179.    00D9 Ugrave
  180.    00DA Uacute
  181.    00DB Ucircumflex
  182.    00DC Udieresis
  183.    00DD Yacute
  184.    00DE Thorn
  185.    00DF germandbls
  186.    00E0 agrave
  187.    00E1 aacute
  188.    00E2 acircumflex
  189.    00E3 atilde
  190.    00E4 adieresis
  191.    00E5 aring
  192.    00E6 ae
  193.    00E7 ccedilla
  194.    00E8 egrave
  195.    00E9 eacute
  196.    00EA ecircumflex
  197.    00EB edieresis
  198.    00EC igrave
  199.    00ED iacute
  200.    00EE icircumflex
  201.    00EF idieresis
  202.    00F0 eth
  203.    00F1 ntilde
  204.    00F2 ograve
  205.    00F3 oacute
  206.    00F4 ocircumflex
  207.    00F5 otilde
  208.    00F6 odieresis
  209.    00F7 divide
  210.    00F8 oslash
  211.    00F9 ugrave
  212.    00FA uacute
  213.    00FB ucircumflex
  214.    00FC udieresis
  215.    00FD yacute
  216.    00FE thorn
  217.    00FF ydieresis
  218.    0100 Amacron
  219.    0101 amacron
  220.    0102 Abreve
  221.    0103 abreve
  222.    0104 Aogonek
  223.    0105 aogonek
  224.    0106 Cacute
  225.    0107 cacute
  226.    0108 Ccircumflex
  227.    0109 ccircumflex
  228.    010A Cdotaccent
  229.    010B cdotaccent
  230.    010C Ccaron
  231.    010D ccaron
  232.    010E Dcaron
  233.    010F dcaron
  234.    0110 Dcroat
  235.    0111 dcroat
  236.    0112 Emacron
  237.    0113 emacron
  238.    0114 Ebreve
  239.    0115 ebreve
  240.    0116 Edotaccent
  241.    0117 edotaccent
  242.    0118 Eogonek
  243.    0119 eogonek
  244.    011A Ecaron
  245.    011B ecaron
  246.    011C Gcircumflex
  247.    011D gcircumflex
  248.    011E Gbreve
  249.    011F gbreve
  250.    0120 Gdotaccent
  251.    0121 gdotaccent
  252.    0122 Gcommaaccent
  253.    0123 gcommaaccent
  254.    0124 Hcircumflex
  255.    0125 hcircumflex
  256.    0126 Hbar
  257.    0127 hbar
  258.    0128 Itilde
  259.    0129 itilde
  260.    012A Imacron
  261.    012B imacron
  262.    012C Ibreve
  263.    012D ibreve
  264.    012E Iogonek
  265.    012F iogonek
  266.    0130 Idotaccent
  267.    0131 dotlessi
  268.    0132 IJ
  269.    0133 ij
  270.    0134 Jcircumflex
  271.    0135 jcircumflex
  272.    0136 Kcommaaccent
  273.    0137 kcommaaccent
  274.    0138 kgreenlandic
  275.    0139 Lacute
  276.    013A lacute
  277.    013B Lcommaaccent
  278.    013C lcommaaccent
  279.    013D Lcaron
  280.    013E lcaron
  281.    013F Ldot
  282.    0140 ldot
  283.    0141 Lslash
  284.    0142 lslash
  285.    0143 Nacute
  286.    0144 nacute
  287.    0145 Ncommaaccent
  288.    0146 ncommaaccent
  289.    0147 Ncaron
  290.    0148 ncaron
  291.    0149 napostrophe
  292.    014A Eng
  293.    014B eng
  294.    014C Omacron
  295.    014D omacron
  296.    014E Obreve
  297.    014F obreve
  298.    0150 Ohungarumlaut
  299.    0151 ohungarumlaut
  300.    0152 OE
  301.    0153 oe
  302.    0154 Racute
  303.    0155 racute
  304.    0156 Rcommaaccent
  305.    0157 rcommaaccent
  306.    0158 Rcaron
  307.    0159 rcaron
  308.    015A Sacute
  309.    015B sacute
  310.    015C Scircumflex
  311.    015D scircumflex
  312.    015E Scedilla
  313.    015F scedilla
  314.    0160 Scaron
  315.    0161 scaron
  316.    0162 Tcommaaccent
  317.    0163 tcommaaccent
  318.    0164 Tcaron
  319.    0165 tcaron
  320.    0166 Tbar
  321.    0167 tbar
  322.    0168 Utilde
  323.    0169 utilde
  324.    016A Umacron
  325.    016B umacron
  326.    016C Ubreve
  327.    016D ubreve
  328.    016E Uring
  329.    016F uring
  330.    0170 Uhungarumlaut
  331.    0171 uhungarumlaut
  332.    0172 Uogonek
  333.    0173 uogonek
  334.    0174 Wcircumflex
  335.    0175 wcircumflex
  336.    0176 Ycircumflex
  337.    0177 ycircumflex
  338.    0178 Ydieresis
  339.    0179 Zacute
  340.    017A zacute
  341.    017B Zdotaccent
  342.    017C zdotaccent
  343.    017D Zcaron
  344.    017E zcaron
  345.    017F longs
  346.    0192 florin
  347.    01A0 Ohorn
  348.    01A1 ohorn
  349.    01AF Uhorn
  350.    01B0 uhorn
  351.    01E6 Gcaron
  352.    01E7 gcaron
  353.    01FA Aringacute
  354.    01FB aringacute
  355.    01FC AEacute
  356.    01FD aeacute
  357.    01FE Oslashacute
  358.    01FF oslashacute
  359.    0218 Scommaaccent
  360.    0219 scommaaccent
  361.    021A Tcommaaccent
  362.    021B tcommaaccent
  363.    02BC afii57929
  364.    02BD afii64937
  365.    02C6 circumflex
  366.    02C7 caron
  367.    02C9 macron
  368.    02D8 breve
  369.    02D9 dotaccent
  370.    02DA ring
  371.    02DB ogonek
  372.    02DC tilde
  373.    02DD hungarumlaut
  374.    0300 gravecomb
  375.    0301 acutecomb
  376.    0303 tildecomb
  377.    0309 hookabovecomb
  378.    0323 dotbelowcomb
  379.    0384 tonos
  380.    0385 dieresistonos
  381.    0386 Alphatonos
  382.    0387 anoteleia
  383.    0388 Epsilontonos
  384.    0389 Etatonos
  385.    038A Iotatonos
  386.    038C Omicrontonos
  387.    038E Upsilontonos
  388.    038F Omegatonos
  389.    0390 iotadieresistonos
  390.    0391 Alpha
  391.    0392 Beta
  392.    0393 Gamma
  393.    0394 Delta
  394.    0395 Epsilon
  395.    0396 Zeta
  396.    0397 Eta
  397.    0398 Theta
  398.    0399 Iota
  399.    039A Kappa
  400.    039B Lambda
  401.    039C Mu
  402.    039D Nu
  403.    039E Xi
  404.    039F Omicron
  405.    03A0 Pi
  406.    03A1 Rho
  407.    03A3 Sigma
  408.    03A4 Tau
  409.    03A5 Upsilon
  410.    03A6 Phi
  411.    03A7 Chi
  412.    03A8 Psi
  413.    03A9 Omega
  414.    03AA Iotadieresis
  415.    03AB Upsilondieresis
  416.    03AC alphatonos
  417.    03AD epsilontonos
  418.    03AE etatonos
  419.    03AF iotatonos
  420.    03B0 upsilondieresistonos
  421.    03B1 alpha
  422.    03B2 beta
  423.    03B3 gamma
  424.    03B4 delta
  425.    03B5 epsilon
  426.    03B6 zeta
  427.    03B7 eta
  428.    03B8 theta
  429.    03B9 iota
  430.    03BA kappa
  431.    03BB lambda
  432.    03BC mu
  433.    03BD nu
  434.    03BE xi
  435.    03BF omicron
  436.    03C0 pi
  437.    03C1 rho
  438.    03C2 sigma1
  439.    03C3 sigma
  440.    03C4 tau
  441.    03C5 upsilon
  442.    03C6 phi
  443.    03C7 chi
  444.    03C8 psi
  445.    03C9 omega
  446.    03CA iotadieresis
  447.    03CB upsilondieresis
  448.    03CC omicrontonos
  449.    03CD upsilontonos
  450.    03CE omegatonos
  451.    03D1 theta1
  452.    03D2 Upsilon1
  453.    03D5 phi1
  454.    03D6 omega1
  455.    0401 afii10023
  456.    0402 afii10051
  457.    0403 afii10052
  458.    0404 afii10053
  459.    0405 afii10054
  460.    0406 afii10055
  461.    0407 afii10056
  462.    0408 afii10057
  463.    0409 afii10058
  464.    040A afii10059
  465.    040B afii10060
  466.    040C afii10061
  467.    040E afii10062
  468.    040F afii10145
  469.    0410 afii10017
  470.    0411 afii10018
  471.    0412 afii10019
  472.    0413 afii10020
  473.    0414 afii10021
  474.    0415 afii10022
  475.    0416 afii10024
  476.    0417 afii10025
  477.    0418 afii10026
  478.    0419 afii10027
  479.    041A afii10028
  480.    041B afii10029
  481.    041C afii10030
  482.    041D afii10031
  483.    041E afii10032
  484.    041F afii10033
  485.    0420 afii10034
  486.    0421 afii10035
  487.    0422 afii10036
  488.    0423 afii10037
  489.    0424 afii10038
  490.    0425 afii10039
  491.    0426 afii10040
  492.    0427 afii10041
  493.    0428 afii10042
  494.    0429 afii10043
  495.    042A afii10044
  496.    042B afii10045
  497.    042C afii10046
  498.    042D afii10047
  499.    042E afii10048
  500.    042F afii10049
  501.    0430 afii10065
  502.    0431 afii10066
  503.    0432 afii10067
  504.    0433 afii10068
  505.    0434 afii10069
  506.    0435 afii10070
  507.    0436 afii10072
  508.    0437 afii10073
  509.    0438 afii10074
  510.    0439 afii10075
  511.    043A afii10076
  512.    043B afii10077
  513.    043C afii10078
  514.    043D afii10079
  515.    043E afii10080
  516.    043F afii10081
  517.    0440 afii10082
  518.    0441 afii10083
  519.    0442 afii10084
  520.    0443 afii10085
  521.    0444 afii10086
  522.    0445 afii10087
  523.    0446 afii10088
  524.    0447 afii10089
  525.    0448 afii10090
  526.    0449 afii10091
  527.    044A afii10092
  528.    044B afii10093
  529.    044C afii10094
  530.    044D afii10095
  531.    044E afii10096
  532.    044F afii10097
  533.    0451 afii10071
  534.    0452 afii10099
  535.    0453 afii10100
  536.    0454 afii10101
  537.    0455 afii10102
  538.    0456 afii10103
  539.    0457 afii10104
  540.    0458 afii10105
  541.    0459 afii10106
  542.    045A afii10107
  543.    045B afii10108
  544.    045C afii10109
  545.    045E afii10110
  546.    045F afii10193
  547.    0462 afii10146
  548.    0463 afii10194
  549.    0472 afii10147
  550.    0473 afii10195
  551.    0474 afii10148
  552.    0475 afii10196
  553.    0490 afii10050
  554.    0491 afii10098
  555.    04D9 afii10846
  556.    05B0 afii57799
  557.    05B1 afii57801
  558.    05B2 afii57800
  559.    05B3 afii57802
  560.    05B4 afii57793
  561.    05B5 afii57794
  562.    05B6 afii57795
  563.    05B7 afii57798
  564.    05B8 afii57797
  565.    05B9 afii57806
  566.    05BB afii57796
  567.    05BC afii57807
  568.    05BD afii57839
  569.    05BE afii57645
  570.    05BF afii57841
  571.    05C0 afii57842
  572.    05C1 afii57804
  573.    05C2 afii57803
  574.    05C3 afii57658
  575.    05D0 afii57664
  576.    05D1 afii57665
  577.    05D2 afii57666
  578.    05D3 afii57667
  579.    05D4 afii57668
  580.    05D5 afii57669
  581.    05D6 afii57670
  582.    05D7 afii57671
  583.    05D8 afii57672
  584.    05D9 afii57673
  585.    05DA afii57674
  586.    05DB afii57675
  587.    05DC afii57676
  588.    05DD afii57677
  589.    05DE afii57678
  590.    05DF afii57679
  591.    05E0 afii57680
  592.    05E1 afii57681
  593.    05E2 afii57682
  594.    05E3 afii57683
  595.    05E4 afii57684
  596.    05E5 afii57685
  597.    05E6 afii57686
  598.    05E7 afii57687
  599.    05E8 afii57688
  600.    05E9 afii57689
  601.    05EA afii57690
  602.    05F0 afii57716
  603.    05F1 afii57717
  604.    05F2 afii57718
  605.    060C afii57388
  606.    061B afii57403
  607.    061F afii57407
  608.    0621 afii57409
  609.    0622 afii57410
  610.    0623 afii57411
  611.    0624 afii57412
  612.    0625 afii57413
  613.    0626 afii57414
  614.    0627 afii57415
  615.    0628 afii57416
  616.    0629 afii57417
  617.    062A afii57418
  618.    062B afii57419
  619.    062C afii57420
  620.    062D afii57421
  621.    062E afii57422
  622.    062F afii57423
  623.    0630 afii57424
  624.    0631 afii57425
  625.    0632 afii57426
  626.    0633 afii57427
  627.    0634 afii57428
  628.    0635 afii57429
  629.    0636 afii57430
  630.    0637 afii57431
  631.    0638 afii57432
  632.    0639 afii57433
  633.    063A afii57434
  634.    0640 afii57440
  635.    0641 afii57441
  636.    0642 afii57442
  637.    0643 afii57443
  638.    0644 afii57444
  639.    0645 afii57445
  640.    0646 afii57446
  641.    0647 afii57470
  642.    0648 afii57448
  643.    0649 afii57449
  644.    064A afii57450
  645.    064B afii57451
  646.    064C afii57452
  647.    064D afii57453
  648.    064E afii57454
  649.    064F afii57455
  650.    0650 afii57456
  651.    0651 afii57457
  652.    0652 afii57458
  653.    0660 afii57392
  654.    0661 afii57393
  655.    0662 afii57394
  656.    0663 afii57395
  657.    0664 afii57396
  658.    0665 afii57397
  659.    0666 afii57398
  660.    0667 afii57399
  661.    0668 afii57400
  662.    0669 afii57401
  663.    066A afii57381
  664.    066D afii63167
  665.    0679 afii57511
  666.    067E afii57506
  667.    0686 afii57507
  668.    0688 afii57512
  669.    0691 afii57513
  670.    0698 afii57508
  671.    06A4 afii57505
  672.    06AF afii57509
  673.    06BA afii57514
  674.    06D2 afii57519
  675.    06D5 afii57534
  676.    1E80 Wgrave
  677.    1E81 wgrave
  678.    1E82 Wacute
  679.    1E83 wacute
  680.    1E84 Wdieresis
  681.    1E85 wdieresis
  682.    1EF2 Ygrave
  683.    1EF3 ygrave
  684.    200C afii61664
  685.    200D afii301
  686.    200E afii299
  687.    200F afii300
  688.    2012 figuredash
  689.    2013 endash
  690.    2014 emdash
  691.    2015 afii00208
  692.    2017 underscoredbl
  693.    2018 quoteleft
  694.    2019 quoteright
  695.    201A quotesinglbase
  696.    201B quotereversed
  697.    201C quotedblleft
  698.    201D quotedblright
  699.    201E quotedblbase
  700.    2020 dagger
  701.    2021 daggerdbl
  702.    2022 bullet
  703.    2024 onedotenleader
  704.    2025 twodotenleader
  705.    2026 ellipsis
  706.    202C afii61573
  707.    202D afii61574
  708.    202E afii61575
  709.    2030 perthousand
  710.    2032 minute
  711.    2033 second
  712.    2039 guilsinglleft
  713.    203A guilsinglright
  714.    203C exclamdbl
  715.    2044 fraction
  716.    2070 zerosuperior
  717.    2074 foursuperior
  718.    2075 fivesuperior
  719.    2076 sixsuperior
  720.    2077 sevensuperior
  721.    2078 eightsuperior
  722.    2079 ninesuperior
  723.    207D parenleftsuperior
  724.    207E parenrightsuperior
  725.    207F nsuperior
  726.    2080 zeroinferior
  727.    2081 oneinferior
  728.    2082 twoinferior
  729.    2083 threeinferior
  730.    2084 fourinferior
  731.    2085 fiveinferior
  732.    2086 sixinferior
  733.    2087 seveninferior
  734.    2088 eightinferior
  735.    2089 nineinferior
  736.    208D parenleftinferior
  737.    208E parenrightinferior
  738.    20A1 colonmonetary
  739.    20A3 franc
  740.    20A4 lira
  741.    20A7 peseta
  742.    20AA afii57636
  743.    20AB dong
  744.    20AC Euro
  745.    2105 afii61248
  746.    2111 Ifraktur
  747.    2113 afii61289
  748.    2116 afii61352
  749.    2118 weierstrass
  750.    211C Rfraktur
  751.    211E prescription
  752.    2122 trademark
  753.    2126 Omega
  754.    212E estimated
  755.    2135 aleph
  756.    2153 onethird
  757.    2154 twothirds
  758.    215B oneeighth
  759.    215C threeeighths
  760.    215D fiveeighths
  761.    215E seveneighths
  762.    2190 arrowleft
  763.    2191 arrowup
  764.    2192 arrowright
  765.    2193 arrowdown
  766.    2194 arrowboth
  767.    2195 arrowupdn
  768.    21A8 arrowupdnbse
  769.    21B5 carriagereturn
  770.    21D0 arrowdblleft
  771.    21D1 arrowdblup
  772.    21D2 arrowdblright
  773.    21D3 arrowdbldown
  774.    21D4 arrowdblboth
  775.    2200 universal
  776.    2202 partialdiff
  777.    2203 existential
  778.    2205 emptyset
  779.    2206 Delta
  780.    2207 gradient
  781.    2208 element
  782.    2209 notelement
  783.    220B suchthat
  784.    220F product
  785.    2211 summation
  786.    2212 minus
  787.    2215 fraction
  788.    2217 asteriskmath
  789.    2219 periodcentered
  790.    221A radical
  791.    221D proportional
  792.    221E infinity
  793.    221F orthogonal
  794.    2220 angle
  795.    2227 logicaland
  796.    2228 logicalor
  797.    2229 intersection
  798.    222A union
  799.    222B integral
  800.    2234 therefore
  801.    223C similar
  802.    2245 congruent
  803.    2248 approxequal
  804.    2260 notequal
  805.    2261 equivalence
  806.    2264 lessequal
  807.    2265 greaterequal
  808.    2282 propersubset
  809.    2283 propersuperset
  810.    2284 notsubset
  811.    2286 reflexsubset
  812.    2287 reflexsuperset
  813.    2295 circleplus
  814.    2297 circlemultiply
  815.    22A5 perpendicular
  816.    22C5 dotmath
  817.    2302 house
  818.    2310 revlogicalnot
  819.    2320 integraltp
  820.    2321 integralbt
  821.    2329 angleleft
  822.    232A angleright
  823.    2500 SF100000
  824.    2502 SF110000
  825.    250C SF010000
  826.    2510 SF030000
  827.    2514 SF020000
  828.    2518 SF040000
  829.    251C SF080000
  830.    2524 SF090000
  831.    252C SF060000
  832.    2534 SF070000
  833.    253C SF050000
  834.    2550 SF430000
  835.    2551 SF240000
  836.    2552 SF510000
  837.    2553 SF520000
  838.    2554 SF390000
  839.    2555 SF220000
  840.    2556 SF210000
  841.    2557 SF250000
  842.    2558 SF500000
  843.    2559 SF490000
  844.    255A SF380000
  845.    255B SF280000
  846.    255C SF270000
  847.    255D SF260000
  848.    255E SF360000
  849.    255F SF370000
  850.    2560 SF420000
  851.    2561 SF190000
  852.    2562 SF200000
  853.    2563 SF230000
  854.    2564 SF470000
  855.    2565 SF480000
  856.    2566 SF410000
  857.    2567 SF450000
  858.    2568 SF460000
  859.    2569 SF400000
  860.    256A SF540000
  861.    256B SF530000
  862.    256C SF440000
  863.    2580 upblock
  864.    2584 dnblock
  865.    2588 block
  866.    258C lfblock
  867.    2590 rtblock
  868.    2591 ltshade
  869.    2592 shade
  870.    2593 dkshade
  871.    25A0 filledbox
  872.    25A1 H22073
  873.    25AA H18543
  874.    25AB H18551
  875.    25AC filledrect
  876.    25B2 triagup
  877.    25BA triagrt
  878.    25BC triagdn
  879.    25C4 triaglf
  880.    25CA lozenge
  881.    25CB circle
  882.    25CF H18533
  883.    25D8 invbullet
  884.    25D9 invcircle
  885.    25E6 openbullet
  886.    263A smileface
  887.    263B invsmileface
  888.    263C sun
  889.    2640 female
  890.    2642 male
  891.    2660 spade
  892.    2663 club
  893.    2665 heart
  894.    2666 diamond
  895.    266A musicalnote
  896.    266B musicalnotedbl
  897.    F6BE dotlessj
  898.    F6BF LL
  899.    F6C0 ll
  900.    F6C1 Scedilla
  901.    F6C2 scedilla
  902.    F6C3 commaaccent
  903.    F6C4 afii10063
  904.    F6C5 afii10064
  905.    F6C6 afii10192
  906.    F6C7 afii10831
  907.    F6C8 afii10832
  908.    F6C9 Acute
  909.    F6CA Caron
  910.    F6CB Dieresis
  911.    F6CC DieresisAcute
  912.    F6CD DieresisGrave
  913.    F6CE Grave
  914.    F6CF Hungarumlaut
  915.    F6D0 Macron
  916.    F6D1 cyrBreve
  917.    F6D2 cyrFlex
  918.    F6D3 dblGrave
  919.    F6D4 cyrbreve
  920.    F6D5 cyrflex
  921.    F6D6 dblgrave
  922.    F6D7 dieresisacute
  923.    F6D8 dieresisgrave
  924.    F6D9 copyrightserif
  925.    F6DA registerserif
  926.    F6DB trademarkserif
  927.    F6DC onefitted
  928.    F6DD rupiah
  929.    F6DE threequartersemdash
  930.    F6DF centinferior
  931.    F6E0 centsuperior
  932.    F6E1 commainferior
  933.    F6E2 commasuperior
  934.    F6E3 dollarinferior
  935.    F6E4 dollarsuperior
  936.    F6E5 hypheninferior
  937.    F6E6 hyphensuperior
  938.    F6E7 periodinferior
  939.    F6E8 periodsuperior
  940.    F6E9 asuperior
  941.    F6EA bsuperior
  942.    F6EB dsuperior
  943.    F6EC esuperior
  944.    F6ED isuperior
  945.    F6EE lsuperior
  946.    F6EF msuperior
  947.    F6F0 osuperior
  948.    F6F1 rsuperior
  949.    F6F2 ssuperior
  950.    F6F3 tsuperior
  951.    F6F4 Brevesmall
  952.    F6F5 Caronsmall
  953.    F6F6 Circumflexsmall
  954.    F6F7 Dotaccentsmall
  955.    F6F8 Hungarumlautsmall
  956.    F6F9 Lslashsmall
  957.    F6FA OEsmall
  958.    F6FB Ogoneksmall
  959.    F6FC Ringsmall
  960.    F6FD Scaronsmall
  961.    F6FE Tildesmall
  962.    F6FF Zcaronsmall
  963.    F721 exclamsmall
  964.    F724 dollaroldstyle
  965.    F726 ampersandsmall
  966.    F730 zerooldstyle
  967.    F731 oneoldstyle
  968.    F732 twooldstyle
  969.    F733 threeoldstyle
  970.    F734 fouroldstyle
  971.    F735 fiveoldstyle
  972.    F736 sixoldstyle
  973.    F737 sevenoldstyle
  974.    F738 eightoldstyle
  975.    F739 nineoldstyle
  976.    F73F questionsmall
  977.    F760 Gravesmall
  978.    F761 Asmall
  979.    F762 Bsmall
  980.    F763 Csmall
  981.    F764 Dsmall
  982.    F765 Esmall
  983.    F766 Fsmall
  984.    F767 Gsmall
  985.    F768 Hsmall
  986.    F769 Ismall
  987.    F76A Jsmall
  988.    F76B Ksmall
  989.    F76C Lsmall
  990.    F76D Msmall
  991.    F76E Nsmall
  992.    F76F Osmall
  993.    F770 Psmall
  994.    F771 Qsmall
  995.    F772 Rsmall
  996.    F773 Ssmall
  997.    F774 Tsmall
  998.    F775 Usmall
  999.    F776 Vsmall
  1000.    F777 Wsmall
  1001.    F778 Xsmall
  1002.    F779 Ysmall
  1003.    F77A Zsmall
  1004.    F7A1 exclamdownsmall
  1005.    F7A2 centoldstyle
  1006.    F7A8 Dieresissmall
  1007.    F7AF Macronsmall
  1008.    F7B4 Acutesmall
  1009.    F7B8 Cedillasmall
  1010.    F7BF questiondownsmall
  1011.    F7E0 Agravesmall
  1012.    F7E1 Aacutesmall
  1013.    F7E2 Acircumflexsmall
  1014.    F7E3 Atildesmall
  1015.    F7E4 Adieresissmall
  1016.    F7E5 Aringsmall
  1017.    F7E6 AEsmall
  1018.    F7E7 Ccedillasmall
  1019.    F7E8 Egravesmall
  1020.    F7E9 Eacutesmall
  1021.    F7EA Ecircumflexsmall
  1022.    F7EB Edieresissmall
  1023.    F7EC Igravesmall
  1024.    F7ED Iacutesmall
  1025.    F7EE Icircumflexsmall
  1026.    F7EF Idieresissmall
  1027.    F7F0 Ethsmall
  1028.    F7F1 Ntildesmall
  1029.    F7F2 Ogravesmall
  1030.    F7F3 Oacutesmall
  1031.    F7F4 Ocircumflexsmall
  1032.    F7F5 Otildesmall
  1033.    F7F6 Odieresissmall
  1034.    F7F8 Oslashsmall
  1035.    F7F9 Ugravesmall
  1036.    F7FA Uacutesmall
  1037.    F7FB Ucircumflexsmall
  1038.    F7FC Udieresissmall
  1039.    F7FD Yacutesmall
  1040.    F7FE Thornsmall
  1041.    F7FF Ydieresissmall
  1042.    F8E5 radicalex
  1043.    F8E6 arrowvertex
  1044.    F8E7 arrowhorizex
  1045.    F8E8 registersans
  1046.    F8E9 copyrightsans
  1047.    F8EA trademarksans
  1048.    F8EB parenlefttp
  1049.    F8EC parenleftex
  1050.    F8ED parenleftbt
  1051.    F8EE bracketlefttp
  1052.    F8EF bracketleftex
  1053.    F8F0 bracketleftbt
  1054.    F8F1 bracelefttp
  1055.    F8F2 braceleftmid
  1056.    F8F3 braceleftbt
  1057.    F8F4 braceex
  1058.    F8F5 integralex
  1059.    F8F6 parenrighttp
  1060.    F8F7 parenrightex
  1061.    F8F8 parenrightbt
  1062.    F8F9 bracketrighttp
  1063.    F8FA bracketrightex
  1064.    F8FB bracketrightbt
  1065.    F8FC bracerighttp
  1066.    F8FD bracerightmid
  1067.    F8FE bracerightbt
  1068.    FB00 ff
  1069.    FB01 fi
  1070.    FB02 fl
  1071.    FB03 ffi
  1072.    FB04 ffl
  1073.    FB1F afii57705
  1074.    FB2A afii57694
  1075.    FB2B afii57695
  1076.    FB35 afii57723
  1077.    FB4B afii57700
  1078. }
  1079. # precalculate entire prolog when this file is loaded 
  1080. # (to speed things up)
  1081. set ps_preamable "%%BeginPrologn"
  1082. append ps_preamable [CreatePostscriptEncoding [encoding system]]
  1083. append ps_preamable {
  1084. 50 dict begin
  1085. % This is a standard prolog for Postscript generated by Tk's canvas
  1086. % widget.
  1087. % RCS: @(#) $Id: mkpsenc.tcl,v 1.3 2002/07/19 14:37:21 drh Exp $
  1088. % The definitions below just define all of the variables used in
  1089. % any of the procedures here.  This is needed for obscure reasons
  1090. % explained on p. 716 of the Postscript manual (Section H.2.7,
  1091. % "Initializing Variables," in the section on Encapsulated Postscript).
  1092. /baseline 0 def
  1093. /stipimage 0 def
  1094. /height 0 def
  1095. /justify 0 def
  1096. /lineLength 0 def
  1097. /spacing 0 def
  1098. /stipple 0 def
  1099. /strings 0 def
  1100. /xoffset 0 def
  1101. /yoffset 0 def
  1102. /tmpstip null def
  1103. /cstringshow {
  1104.     {
  1105. dup type /stringtype eq
  1106. { show } { glyphshow }
  1107. ifelse
  1108.     }
  1109.     forall
  1110. } bind def
  1111. /cstringwidth {
  1112.     0 exch 0 exch
  1113.     {
  1114. dup type /stringtype eq
  1115. { stringwidth } { 
  1116.     currentfont /Encoding get exch 1 exch put (01) stringwidth 
  1117.         }
  1118. ifelse 
  1119. exch 3 1 roll add 3 1 roll add exch
  1120.     }
  1121.     forall
  1122. } bind def
  1123. % font ISOEncode font
  1124. % This procedure changes the encoding of a font from the default
  1125. % Postscript encoding to current system encoding.  It's typically invoked just
  1126. % before invoking "setfont".  The body of this procedure comes from
  1127. % Section 5.6.1 of the Postscript book.
  1128. /ISOEncode {
  1129.     dup length dict begin
  1130. {1 index /FID ne {def} {pop pop} ifelse} forall
  1131. /Encoding CurrentEncoding def
  1132. currentdict
  1133.     end
  1134.     % I'm not sure why it's necessary to use "definefont" on this new
  1135.     % font, but it seems to be important; just use the name "Temporary"
  1136.     % for the font.
  1137.     /Temporary exch definefont
  1138. } bind def
  1139. % StrokeClip
  1140. %
  1141. % This procedure converts the current path into a clip area under
  1142. % the assumption of stroking.  It's a bit tricky because some Postscript
  1143. % interpreters get errors during strokepath for dashed lines.  If
  1144. % this happens then turn off dashes and try again.
  1145. /StrokeClip {
  1146.     {strokepath} stopped {
  1147. (This Postscript printer gets limitcheck overflows when) =
  1148. (stippling dashed lines;  lines will be printed solid instead.) =
  1149. [] 0 setdash strokepath} if
  1150.     clip
  1151. } bind def
  1152. % desiredSize EvenPixels closestSize
  1153. %
  1154. % The procedure below is used for stippling.  Given the optimal size
  1155. % of a dot in a stipple pattern in the current user coordinate system,
  1156. % compute the closest size that is an exact multiple of the device's
  1157. % pixel size.  This allows stipple patterns to be displayed without
  1158. % aliasing effects.
  1159. /EvenPixels {
  1160.     % Compute exact number of device pixels per stipple dot.
  1161.     dup 0 matrix currentmatrix dtransform
  1162.     dup mul exch dup mul add sqrt
  1163.     % Round to an integer, make sure the number is at least 1, and compute
  1164.     % user coord distance corresponding to this.
  1165.     dup round dup 1 lt {pop 1} if
  1166.     exch div mul
  1167. } bind def
  1168. % width height string StippleFill --
  1169. %
  1170. % Given a path already set up and a clipping region generated from
  1171. % it, this procedure will fill the clipping region with a stipple
  1172. % pattern.  "String" contains a proper image description of the
  1173. % stipple pattern and "width" and "height" give its dimensions.  Each
  1174. % stipple dot is assumed to be about one unit across in the current
  1175. % user coordinate system.  This procedure trashes the graphics state.
  1176. /StippleFill {
  1177.     % The following code is needed to work around a NeWSprint bug.
  1178.     /tmpstip 1 index def
  1179.     % Change the scaling so that one user unit in user coordinates
  1180.     % corresponds to the size of one stipple dot.
  1181.     1 EvenPixels dup scale
  1182.     % Compute the bounding box occupied by the path (which is now
  1183.     % the clipping region), and round the lower coordinates down
  1184.     % to the nearest starting point for the stipple pattern.  Be
  1185.     % careful about negative numbers, since the rounding works
  1186.     % differently on them.
  1187.     pathbbox
  1188.     4 2 roll
  1189.     5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll
  1190.     6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll
  1191.     % Stack now: width height string y1 y2 x1 x2
  1192.     % Below is a doubly-nested for loop to iterate across this area
  1193.     % in units of the stipple pattern size, going up columns then
  1194.     % across rows, blasting out a stipple-pattern-sized rectangle at
  1195.     % each position
  1196.     6 index exch {
  1197. 2 index 5 index 3 index {
  1198.     % Stack now: width height string y1 y2 x y
  1199.     gsave
  1200.     1 index exch translate
  1201.     5 index 5 index true matrix tmpstip imagemask
  1202.     grestore
  1203. } for
  1204. pop
  1205.     } for
  1206.     pop pop pop pop pop
  1207. } bind def
  1208. % -- AdjustColor --
  1209. % Given a color value already set for output by the caller, adjusts
  1210. % that value to a grayscale or mono value if requested by the CL
  1211. % variable.
  1212. /AdjustColor {
  1213.     CL 2 lt {
  1214. currentgray
  1215. CL 0 eq {
  1216.     .5 lt {0} {1} ifelse
  1217. } if
  1218. setgray
  1219.     } if
  1220. } bind def
  1221. % x y strings spacing xoffset yoffset justify stipple DrawText --
  1222. % This procedure does all of the real work of drawing text.  The
  1223. % color and font must already have been set by the caller, and the
  1224. % following arguments must be on the stack:
  1225. %
  1226. % x, y - Coordinates at which to draw text.
  1227. % strings - An array of strings, one for each line of the text item,
  1228. % in order from top to bottom.
  1229. % spacing - Spacing between lines.
  1230. % xoffset - Horizontal offset for text bbox relative to x and y: 0 for
  1231. % nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se.
  1232. % yoffset - Vertical offset for text bbox relative to x and y: 0 for
  1233. % nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se.
  1234. % justify - 0 for left justification, 0.5 for center, 1 for right justify.
  1235. % stipple - Boolean value indicating whether or not text is to be
  1236. % drawn in stippled fashion.  If text is stippled,
  1237. % procedure StippleText must have been defined to call
  1238. % StippleFill in the right way.
  1239. %
  1240. % Also, when this procedure is invoked, the color and font must already
  1241. % have been set for the text.
  1242. /DrawText {
  1243.     /stipple exch def
  1244.     /justify exch def
  1245.     /yoffset exch def
  1246.     /xoffset exch def
  1247.     /spacing exch def
  1248.     /strings exch def
  1249.     % First scan through all of the text to find the widest line.
  1250.     /lineLength 0 def
  1251.     strings {
  1252. cstringwidth pop
  1253. dup lineLength gt {/lineLength exch def} {pop} ifelse
  1254. newpath
  1255.     } forall
  1256.     % Compute the baseline offset and the actual font height.
  1257.     0 0 moveto (TXygqPZ) false charpath
  1258.     pathbbox dup /baseline exch def
  1259.     exch pop exch sub /height exch def pop
  1260.     newpath
  1261.     % Translate coordinates first so that the origin is at the upper-left
  1262.     % corner of the text's bounding box. Remember that x and y for
  1263.     % positioning are still on the stack.
  1264.     translate
  1265.     lineLength xoffset mul
  1266.     strings length 1 sub spacing mul height add yoffset mul translate
  1267.     % Now use the baseline and justification information to translate so
  1268.     % that the origin is at the baseline and positioning point for the
  1269.     % first line of text.
  1270.     justify lineLength mul baseline neg translate
  1271.     % Iterate over each of the lines to output it.  For each line,
  1272.     % compute its width again so it can be properly justified, then
  1273.     % display it.
  1274.     strings {
  1275. dup cstringwidth pop
  1276. justify neg mul 0 moveto
  1277. stipple {
  1278.    
  1279.  
  1280.     % The text is stippled, so turn it into a path and print
  1281.     % by calling StippledText, which in turn calls StippleFill.
  1282.     % Unfortunately, many Postscript interpreters will get
  1283.     % overflow errors if we try to do the whole string at
  1284.     % once, so do it a character at a time.
  1285.     gsave
  1286.     /char (X) def
  1287.     {
  1288. dup type /stringtype eq {
  1289.     % This segment is a string.
  1290.     {
  1291.         char 0 3 -1 roll put
  1292.         currentpoint
  1293.         gsave
  1294.         char true charpath clip StippleText
  1295.         grestore
  1296.         char stringwidth translate
  1297.         moveto
  1298.     } forall
  1299. } {
  1300.     % This segment is glyph name
  1301.     % Temporary override
  1302.     currentfont /Encoding get exch 1 exch put
  1303.     currentpoint
  1304.     gsave (01) true charpath clip StippleText
  1305.     grestore
  1306.             (01) stringwidth translate
  1307.     moveto
  1308. } ifelse
  1309.     } forall
  1310.     grestore 
  1311. } {cstringshow} ifelse
  1312. 0 spacing neg translate
  1313.     } forall
  1314. } bind def
  1315. %%EndProlog
  1316. }
  1317. }
  1318. proc tk::ensure_psenc_is_loaded {} {
  1319. }