home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 March / PCWELT_3_2006.ISO / base / 05_common.mo / usr / bin / libwmf-fontmap < prev    next >
Encoding:
Text File  |  2005-06-09  |  12.8 KB  |  600 lines

  1. #!/bin/sh
  2.  
  3. font_map=/usr/share/libwmf/fonts/fontmap
  4. font_dir=
  5.  
  6. echo_help=no
  7.  
  8. while test $# -gt 0; do
  9.     case "$1" in
  10.     -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  11.     *)    optarg= ;;
  12.     esac
  13.  
  14.     case $1 in
  15.     --help)  echo_help=yes ;;
  16.     --map=*)
  17.         font_map=$optarg
  18.     ;;
  19.     *)
  20.         if test "x$font_dir" = "x"; then
  21.             font_dir=$1
  22.         else
  23.             font_dir="$font_dir $1"
  24.         fi
  25.     ;;
  26.     esac
  27.  
  28.     shift
  29. done
  30.  
  31. if test "x$font_map" = "x"; then
  32.     echo_help=yes
  33. fi
  34.  
  35. if test "x$font_dir" = "x"; then
  36.     font_dir="/usr/share/libwmf/fonts"
  37. else
  38.     font_dir="$font_dir /usr/share/libwmf/fonts"
  39. fi
  40.  
  41. if test $echo_help = yes; then
  42.     cat <<EOF
  43. Usage: libwmf-fontmap --map=<fontmap> dir1 [dir2 [dir3 ...]]
  44. EOF
  45.     exit $1
  46. fi
  47.  
  48. echo font map = $font_map
  49.  
  50. font_pwd=`pwd`
  51.  
  52. if test -w $font_map; then
  53.     rm -f $font_map
  54. fi
  55.  
  56. cat > $font_map <<EOF
  57. <?xml version="1.0"?>
  58. <fontmap>
  59. EOF
  60.  
  61. for i in $font_dir; do
  62.     if test -d $i; then
  63.         cd $i;
  64.         font_cwd=`pwd`;
  65.         echo scanning $i;
  66.  
  67.         for j in `ls *.afm 2> /dev/null`; do
  68.             font_root=`echo $j | sed s/.afm//`
  69.             font_metrics=$font_cwd/$font_root.afm
  70.             font_glyphs=
  71.             if test -r $font_cwd/$font_root.pfa; then
  72.                 font_glyphs=$font_cwd/$font_root.pfa
  73.             elif test -r $font_cwd/$font_root.pfb; then
  74.                 font_glyphs=$font_cwd/$font_root.pfb
  75.             fi
  76.             if test "x$font_glyphs" != "x"; then
  77.                 echo font: $font_root
  78.                 FontName=`grep "FontName " $font_metrics | sed "s/FontName //"`
  79.                 FullName=`grep "FullName " $font_metrics | sed "s/FullName //"`
  80.                 FamilyName=`grep "FamilyName " $font_metrics | sed "s/FamilyName //"`
  81.                 Weight=`grep "Weight " $font_metrics | sed "s/Weight //"`
  82.                 cd $font_pwd
  83.                 echo '<font format="type1" metrics="'$font_metrics'" glyphs="'$font_glyphs'" name="'$FontName'" fullname="'$FullName'" familyname="'$FamilyName'" weight="'$Weight'" version="0.1" alias="'$FontName'"/>' >> $font_map
  84.                 cd $font_cwd
  85.             fi
  86.         done
  87.  
  88.         for j in `ls *.ttf 2> /dev/null`; do
  89.             font_root=`echo $j | sed s/.ttf//`
  90.             font_recognized=yes
  91.             font_glyphs=$font_cwd/$font_root.ttf
  92.             case "$font_root" in
  93.                 antquab)
  94.                 FontName="BookAntiqua-Bold"
  95.                 FullName="Book Antiqua Bold"
  96.                 FamilyName="Book Antiqua"
  97.                 Weight="Bold"
  98.                 ;;
  99.                 antquabi)
  100.                 FontName="BookAntiqua-BoldItalic"
  101.                 FullName="Book Antiqua Bold Italic"
  102.                 FamilyName="Book Antiqua"
  103.                 Weight="Bold Italic"
  104.                 ;;
  105.                 antquai)
  106.                 FontName="BookAntiqua-Italic"
  107.                 FullName="Book Antiqua Italic"
  108.                 FamilyName="Book Antiqua"
  109.                 Weight="Italic"
  110.                 ;;
  111.                 arbli___)
  112.                 FontName="Arial-BlackItalic"
  113.                 FullName="Arial Black Italic"
  114.                 FamilyName="Arial Black"
  115.                 Weight="Italic"
  116.                 ;;
  117.                 arial)
  118.                 FontName="ArialMT"
  119.                 FullName="Arial"
  120.                 FamilyName="Arial"
  121.                 Weight="Regular"
  122.                 ;;
  123.                 arialbd)
  124.                 FontName="Arial-BoldMT"
  125.                 FullName="Arial Bold"
  126.                 FamilyName="Arial"
  127.                 Weight="Bold"
  128.                 ;;
  129.                 arialbi)
  130.                 FontName="Arial-BoldItalicMT"
  131.                 FullName="Arial Bold Italic"
  132.                 FamilyName="Arial"
  133.                 Weight="Bold Italic"
  134.                 ;;
  135.                 ariali)
  136.                 FontName="Arial-ItalicMT"
  137.                 FullName="Arial Italic"
  138.                 FamilyName="Arial"
  139.                 Weight="Italic"
  140.                 ;;
  141.                 arialn)
  142.                 FontName="ArialNarrow"
  143.                 FullName="Arial Narrow"
  144.                 FamilyName="Arial Narrow"
  145.                 Weight="Regular"
  146.                 ;;
  147.                 arialnb)
  148.                 FontName="ArialNarrow-Bold"
  149.                 FullName="Arial Narrow Bold"
  150.                 FamilyName="Arial Narrow"
  151.                 Weight="Bold"
  152.                 ;;
  153.                 arialnbi)
  154.                 FontName="ArialNarrow-BoldItalic"
  155.                 FullName="Arial Narrow Bold Italic"
  156.                 FamilyName="Arial Narrow"
  157.                 Weight="Bold Italic"
  158.                 ;;
  159.                 arialni)
  160.                 FontName="ArialNarrow-Italic"
  161.                 FullName="Arial Narrow Italic"
  162.                 FamilyName="Arial Narrow"
  163.                 Weight="Italic"
  164.                 ;;
  165.                 arialuni)
  166.                 FontName="ArialUnicodeMS"
  167.                 FullName="Arial Unicode MS"
  168.                 FamilyName="Arial Unicode MS"
  169.                 Weight="Regular"
  170.                 ;;
  171.                 ariblk)
  172.                 FontName="Arial-Black"
  173.                 FullName="Arial Black"
  174.                 FamilyName="Arial Black"
  175.                 Weight="Regular"
  176.                 ;;
  177.                 batang)
  178.                 FontName="Batang"
  179.                 FullName="Batang"
  180.                 FamilyName="Batang"
  181.                 Weight="Regular"
  182.                 ;;
  183.                 bkant)
  184.                 FontName="BookAntiqua"
  185.                 FullName="Book Antiqua"
  186.                 FamilyName="Book Antiqua"
  187.                 Weight="Regular"
  188.                 ;;
  189.                 bookos)
  190.                 FontName="BookmanOldStyle"
  191.                 FullName="Bookman Old Style"
  192.                 FamilyName="Bookman Old Style"
  193.                 Weight="Regular"
  194.                 ;;
  195.                 bookosb)
  196.                 FontName="BookmanOldStyle-Bold"
  197.                 FullName="Bookman Old Style Bold"
  198.                 FamilyName="Bookman Old Style"
  199.                 Weight="Bold"
  200.                 ;;
  201.                 bookosbi)
  202.                 FontName="BookmanOldStyle-BoldItalic"
  203.                 FullName="Bookman Old Style Bold Italic"
  204.                 FamilyName="Bookman Old Style"
  205.                 Weight="Bold Italic"
  206.                 ;;
  207.                 bookosi)
  208.                 FontName="BookmanOldStyle-Italic"
  209.                 FullName="Bookman Old Style Italic"
  210.                 FamilyName="Bookman Old Style"
  211.                 Weight="Italic"
  212.                 ;;
  213.                 century)
  214.                 FontName="Century"
  215.                 FullName="Century"
  216.                 FamilyName="Century"
  217.                 Weight="Regular"
  218.                 ;;
  219.                 comic)
  220.                 FontName="ComicSansMS"
  221.                 FullName="Comic Sans MS"
  222.                 FamilyName="Comic Sans MS"
  223.                 Weight="Regular"
  224.                 ;;
  225.                 comicbd)
  226.                 FontName="ComicSansMS-Bold"
  227.                 FullName="Comic Sans MS Bold"
  228.                 FamilyName="Comic Sans MS"
  229.                 Weight="Bold"
  230.                 ;;
  231.                 cour)
  232.                 FontName="CourierNewPSMT"
  233.                 FullName="Courier New"
  234.                 FamilyName="Courier New"
  235.                 Weight="Regular"
  236.                 ;;
  237.                 courbd)
  238.                 FontName="CourierNewPS-BoldMT"
  239.                 FullName="Courier New Bold"
  240.                 FamilyName="Courier New"
  241.                 Weight="Bold"
  242.                 ;;
  243.                 courbi)
  244.                 FontName="CourierNewPS-BoldItalicMT"
  245.                 FullName="Courier New Bold Italic"
  246.                 FamilyName="Courier New"
  247.                 Weight="Bold Italic"
  248.                 ;;
  249.                 couri)
  250.                 FontName="CourierNewPS-ItalicMT"
  251.                 FullName="Courier New Italic"
  252.                 FamilyName="Courier New"
  253.                 Weight="Italic"
  254.                 ;;
  255.                 euclid)
  256.                 FontName="Euclid"
  257.                 FullName="Euclid"
  258.                 FamilyName="Euclid"
  259.                 Weight="Regular"
  260.                 ;;
  261.                 euclidb)
  262.                 FontName="Euclid-Bold"
  263.                 FullName="Euclid Bold"
  264.                 FamilyName="Euclid"
  265.                 Weight="Bold"
  266.                 ;;
  267.                 euclidbi)
  268.                 FontName="Euclid-BoldItalic"
  269.                 FullName="Euclid Bold Italic"
  270.                 FamilyName="Euclid"
  271.                 Weight="Bold Italic"
  272.                 ;;
  273.                 euclidi)
  274.                 FontName="Euclid-Italic"
  275.                 FullName="Euclid Italic"
  276.                 FamilyName="Euclid"
  277.                 Weight="Italic"
  278.                 ;;
  279.                 eucsym)
  280.                 FontName="EuclidSymbol"
  281.                 FullName="Euclid Symbol"
  282.                 FamilyName="Euclid Symbol"
  283.                 Weight="Regular"
  284.                 ;;
  285.                 eucsymb)
  286.                 FontName="EuclidSymbol-Bold"
  287.                 FullName="Euclid Symbol Bold"
  288.                 FamilyName="Euclid Symbol"
  289.                 Weight="Bold"
  290.                 ;;
  291.                 eucsymbi)
  292.                 FontName="EuclidSymbol-BoldItalic"
  293.                 FullName="Euclid Symbol Bold Italic"
  294.                 FamilyName="Euclid Symbol"
  295.                 Weight="Bold Italic"
  296.                 ;;
  297.                 eucsymi)
  298.                 FontName="EuclidSymbol-Italic"
  299.                 FullName="Euclid Symbol Italic"
  300.                 FamilyName="Euclid Symbol"
  301.                 Weight="Italic"
  302.                 ;;
  303.                 euextra)
  304.                 FontName="EuclidExtra"
  305.                 FullName="Euclid Extra"
  306.                 FamilyName="Euclid Extra"
  307.                 Weight="Regular"
  308.                 ;;
  309.                 euextrab)
  310.                 FontName="EuclidExtra-Bold"
  311.                 FullName="Euclid Extra Bold"
  312.                 FamilyName="Euclid Extra"
  313.                 Weight="Bold"
  314.                 ;;
  315.                 eufrak)
  316.                 FontName="EuclidFraktur"
  317.                 FullName="Euclid Fraktur"
  318.                 FamilyName="Euclid Fraktur"
  319.                 Weight="Regular"
  320.                 ;;
  321.                 eufrakb)
  322.                 FontName="EuclidFraktur-Bold"
  323.                 FullName="Euclid Fraktur Bold"
  324.                 FamilyName="Euclid Fraktur"
  325.                 Weight="Bold"
  326.                 ;;
  327.                 eumat1)
  328.                 FontName="EuclidMathOne"
  329.                 FullName="Euclid Math One"
  330.                 FamilyName="Euclid Math One"
  331.                 Weight="Regular"
  332.                 ;;
  333.                 eumat1b)
  334.                 FontName="EuclidMathOne-Bold"
  335.                 FullName="Euclid Math One Bold"
  336.                 FamilyName="Euclid Math One"
  337.                 Weight="Bold"
  338.                 ;;
  339.                 eumat2)
  340.                 FontName="EuclidMathTwo"
  341.                 FullName="Euclid Math Two"
  342.                 FamilyName="Euclid Math Two"
  343.                 Weight="Regular"
  344.                 ;;
  345.                 eumat2b)
  346.                 FontName="EuclidMathTwo-Bold"
  347.                 FullName="Euclid Math Two Bold"
  348.                 FamilyName="Euclid Math Two"
  349.                 Weight="Bold"
  350.                 ;;
  351.                 fences)
  352.                 FontName="Fences-Plain"
  353.                 FullName="Fences Plain"
  354.                 FamilyName="Fences"
  355.                 Weight="Plain"
  356.                 ;;
  357.                 gara)
  358.                 FontName="Garamond"
  359.                 FullName="Garamond"
  360.                 FamilyName="Garamond"
  361.                 Weight="Regular"
  362.                 ;;
  363.                 garabd)
  364.                 FontName="Garamond-Bold"
  365.                 FullName="Garamond Bold"
  366.                 FamilyName="Garamond"
  367.                 Weight="Bold"
  368.                 ;;
  369.                 garait)
  370.                 FontName="Garamond-Italic"
  371.                 FullName="Garamond Italic"
  372.                 FamilyName="Garamond"
  373.                 Weight="Italic"
  374.                 ;;
  375.                 gothic)
  376.                 FontName="CenturyGothic"
  377.                 FullName="Century Gothic"
  378.                 FamilyName="Century Gothic"
  379.                 Weight="Regular"
  380.                 ;;
  381.                 gothicb)
  382.                 FontName="CenturyGothic-Bold"
  383.                 FullName="Century Gothic Bold"
  384.                 FamilyName="Century Gothic"
  385.                 Weight="Bold"
  386.                 ;;
  387.                 gothicbi)
  388.                 FontName="CenturyGothic-BoldItalic"
  389.                 FullName="Century Gothic Bold Italic"
  390.                 FamilyName="Century Gothic"
  391.                 Weight="Bold Italic"
  392.                 ;;
  393.                 gothici)
  394.                 FontName="CenturyGothic-Italic"
  395.                 FullName="Century Gothic Italic"
  396.                 FamilyName="Century Gothic"
  397.                 Weight="Italic"
  398.                 ;;
  399.                 impact)
  400.                 FontName="Impact"
  401.                 FullName="Impact"
  402.                 FamilyName="Impact"
  403.                 Weight="Regular"
  404.                 ;;
  405.                 l_10646)
  406.                 FontName="LucidaSansUnicode"
  407.                 FullName="Lucida Sans Unicode"
  408.                 FamilyName="Lucida Sans Unicode"
  409.                 Weight="Regular"
  410.                 ;;
  411.                 lucon)
  412.                 FontName="LucidaConsole"
  413.                 FullName="Lucida Console"
  414.                 FamilyName="Lucida Console"
  415.                 Weight="Regular"
  416.                 ;;
  417.                 marlett)
  418.                 FontName="Marlett"
  419.                 FullName="Marlett"
  420.                 FamilyName="Marlett"
  421.                 Weight="Regular"
  422.                 ;;
  423.                 msmincho)
  424.                 FontName="MS-Mincho"
  425.                 FullName="MS Mincho"
  426.                 FamilyName="MS Mincho"
  427.                 Weight="Regular"
  428.                 ;;
  429.                 mtcorsva)
  430.                 FontName="MonotypeCorsiva"
  431.                 FullName="Monotype Corsiva"
  432.                 FamilyName="Monotype Corsiva"
  433.                 Weight="Regular"
  434.                 ;;
  435.                 mtextra)
  436.                 FontName="MT-Extra"
  437.                 FullName="MT Extra"
  438.                 FamilyName="MT Extra"
  439.                 Weight="Regular"
  440.                 ;;
  441.                 mtsymbol)
  442.                 FontName="MT-Symbol"
  443.                 FullName="MT Symbol"
  444.                 FamilyName="MT Symbol"
  445.                 Weight="Regular"
  446.                 ;;
  447.                 outlook)
  448.                 FontName="MSOutlook"
  449.                 FullName="MS Outlook"
  450.                 FamilyName="MS Outlook"
  451.                 Weight="Regular"
  452.                 ;;
  453.                 pmingliu)
  454.                 FontName="PMingLiU"
  455.                 FullName="PMingLiU"
  456.                 FamilyName="PMingLiU"
  457.                 Weight="Regular"
  458.                 ;;
  459.                 simsun)
  460.                 FontName="SimSun"
  461.                 FullName="SimSun"
  462.                 FamilyName="SimSun"
  463.                 Weight="Regular"
  464.                 ;;
  465.                 symbol)
  466.                 FontName="SymbolMT"
  467.                 FullName="Symbol"
  468.                 FamilyName="Symbol"
  469.                 Weight="Regular"
  470.                 ;;
  471.                 tahoma)
  472.                 FontName="Tahoma"
  473.                 FullName="Tahoma"
  474.                 FamilyName="Tahoma"
  475.                 Weight="Regular"
  476.                 ;;
  477.                 tahomabd)
  478.                 FontName="Tahoma-Bold"
  479.                 FullName="Tahoma Bold"
  480.                 FamilyName="Tahoma"
  481.                 Weight="Bold"
  482.                 ;;
  483.                 times)
  484.                 FontName="TimesNewRomanPSMT"
  485.                 FullName="Times New Roman"
  486.                 FamilyName="Times New Roman"
  487.                 Weight="Regular"
  488.                 ;;
  489.                 timesbd)
  490.                 FontName="TimesNewRomanPS-BoldMT"
  491.                 FullName="Times New Roman Bold"
  492.                 FamilyName="Times New Roman"
  493.                 Weight="Bold"
  494.                 ;;
  495.                 timesbi)
  496.                 FontName="TimesNewRomanPS-BoldItalicMT"
  497.                 FullName="Times New Roman Bold Italic"
  498.                 FamilyName="Times New Roman"
  499.                 Weight="Bold Italic"
  500.                 ;;
  501.                 timesi)
  502.                 FontName="TimesNewRomanPS-ItalicMT"
  503.                 FullName="Times New Roman Italic"
  504.                 FamilyName="Times New Roman"
  505.                 Weight="Italic"
  506.                 ;;
  507.                 trebuc)
  508.                 FontName="TrebuchetMS"
  509.                 FullName="Trebuchet MS"
  510.                 FamilyName="Trebuchet MS"
  511.                 Weight="Regular"
  512.                 ;;
  513.                 trebucbd)
  514.                 FontName="TrebuchetMS-Bold"
  515.                 FullName="Trebuchet MS Bold"
  516.                 FamilyName="Trebuchet MS"
  517.                 Weight="Bold"
  518.                 ;;
  519.                 trebucbi)
  520.                 FontName="Trebuchet-BoldItalic"
  521.                 FullName="Trebuchet MS Bold Italic"
  522.                 FamilyName="Trebuchet MS"
  523.                 Weight="Bold Italic"
  524.                 ;;
  525.                 trebucit)
  526.                 FontName="TrebuchetMS-Italic"
  527.                 FullName="Trebuchet MS Italic"
  528.                 FamilyName="Trebuchet MS"
  529.                 Weight="Italic"
  530.                 ;;
  531.                 verdana)
  532.                 FontName="Verdana"
  533.                 FullName="Verdana"
  534.                 FamilyName="Verdana"
  535.                 Weight="Regular"
  536.                 ;;
  537.                 verdanab)
  538.                 FontName="Verdana-Bold"
  539.                 FullName="Verdana Bold"
  540.                 FamilyName="Verdana"
  541.                 Weight="Bold"
  542.                 ;;
  543.                 verdanai)
  544.                 FontName="Verdana-Italic"
  545.                 FullName="Verdana Italic"
  546.                 FamilyName="Verdana"
  547.                 Weight="Italic"
  548.                 ;;
  549.                 verdanaz)
  550.                 FontName="Verdana-BoldItalic"
  551.                 FullName="Verdana Bold Italic"
  552.                 FamilyName="Verdana"
  553.                 Weight="Bold Italic"
  554.                 ;;
  555.                 webdings)
  556.                 FontName="Webdings"
  557.                 FullName="Webdings"
  558.                 FamilyName="Webdings"
  559.                 Weight="Regular"
  560.                 ;;
  561.                 wingding)
  562.                 FontName="Wingdings-Regular"
  563.                 FullName="Wingdings"
  564.                 FamilyName="Wingdings"
  565.                 Weight="Regular"
  566.                 ;;
  567.                 wingdng2)
  568.                 FontName="Wingdings2"
  569.                 FullName="Wingdings 2"
  570.                 FamilyName="Wingdings 2"
  571.                 Weight="Regular"
  572.                 ;;
  573.                 wingdng3)
  574.                 FontName="Wingdings3"
  575.                 FullName="Wingdings 3"
  576.                 FamilyName="Wingdings 3"
  577.                 Weight="Regular"
  578.                 ;;
  579.                 *)
  580.                 font_recognized=no
  581.                 ;;
  582.             esac
  583.             if test $font_recognized = yes; then
  584.                 echo font: $font_root
  585.                 cd $font_pwd
  586.                 echo '<font format="type1" metrics="'$font_metrics'" glyphs="'$font_glyphs'" name="'$FontName'" fullname="'$FullName'" familyname="'$FamilyName'" weight="'$Weight'" version="0.1" alias="'$FontName'"/>' >> $font_map
  587.                 cd $font_cwd
  588.             else
  589.                 echo "I don't know" $font_root
  590.             fi
  591.         done
  592.  
  593.         cd $font_pwd;
  594.     fi
  595. done
  596.  
  597. cat >> $font_map <<EOF
  598. </fontmap>
  599. EOF
  600.