# HOWTO: Install custom fonts

Back to table of contents

## Postscript output method

Say you want to see the fancy "Trebuchet MS" font in your generated postscript...

1. First of all, TrueType-compatible Ghostscript is a must. Most Ghostscipt distributions are TrueType compatible. If you're not sure, ask your system administrator. If your GS is not True-Type compatible, consider building from source using require options.
2. Find the file coresponding to "Trebuchet MS". Assuming you're using some version of Windows on your home machine, you can do it by opening "Control Panel ... Fonts" and checking the properties of the chosen font. At the top of the property page you'll see the file name - `trebuc.ttf`, in our case.
3. Find the font files corresponding to the bold, italic and bold italic versions of this font. Probably, it will be:
   "Trebuchet MS Bold" -- `trebucbd.ttf`,
   "Trebuchet MS Italic" -- `trebucit.ttf`,
   "Trebuchet MS Bold Italic" -- `trebucbi.ttf`
4. Copy these files from the Windows fonts directory (probably C:\Windows\Fonts) to the Ghostscript fonts directory (probably C:\gs\fonts).
5. Modify the Ghostscript fontmap file (probably C:\gs\gs8.51\lib\Fontmap, assuming you're using Ghostscript version 8.51), adding the folowing lines:

       /TrebuchetMS (trebuc.ttf) ;
       /TrebuchetMS-Italic (trebucit.ttf) ;
       /TrebuchetMS-Bold (trebucbd.ttf) ;
       /TrebuchetMS-Bold-Italic (trebucbi.ttf) ;

   Note you can write almost anything after the / assuming it won't interfere with other font names. Say:

       /MyCoolFont1 (trebuc.ttf) ;
       /MyCoolFont2 (trebucit.ttf) ;
       /MyCoolFont3 (trebucbd.ttf) ;
       /MyCoolFont4 (trebucbi.ttf) ;

6. Register the above font names in the script config file. Add the following lines to `.html2ps.config` in the FONT section (between the `<fonts>` and `</fonts>` tags)

         <family name="Trebuchet MS">
           <normal normal="TrebuchetMS" italic="TrebuchetMS-Italic" oblique="TrebuchetMS-Italic"/>
           <bold normal="TrebuchetMS-Bold" italic="TrebuchetMS-Bold-Italic" oblique="TrebuchetMS-Bold-Italic"/>
         </family>

   Of course, the modified file should be uploaded to the server where the working script reside.
7. Register the metric files of the new TrueType fonts. To do it, add the following to the FONT section:

           <metrics typeface="TrebuchetMS" file="trebuc"/>
           <metrics typeface="TrebuchetMS-Italic" file="trebucit"/>
           <metrics typeface="TrebuchetMS-Bold" file="trebucbd"/>
           <metrics typeface="TrebuchetMS-BoldItalic" file="trebucbi"/>

   In this case, the "file" value refers to the name of the font metric file (.afm) you've generated. The ".afm" extension as appended automatically; files are searched in the directory specified by TYPE1_FONTS_REPOSITORY configuration constant (see your config.inc.php file).
8. Now, the following example should be rendered using Trebuchet MS font:

       <BIG style="font-family: 'Trebuchet MS'">ABCDEFGH</BIG><br>
       <BIG style="font-family: 'Trebuchet MS'; font-weight: bold;">ABCDEFGH</BIG><br>
       <BIG style="font-family: 'Trebuchet MS'; font-style: italic;">ABCDEFGH</BIG><br>
       <BIG style="font-family: 'Trebuchet MS'; font-weight: bold; font-style: italic;">ABCDEFGH</BIG><br>

## PS2PDF output method

Take the steps described above with only this difference: all Ghostscript-related directories are on your server where the script resides. Ask your hoster/system administrator about the exact location of Ghostscript.

## PDFLIB output method

Please refer to PDFLib Documentation.