1<?php
2class FontFactory {
3  var $fonts;
4  var $error_message;
5
6  var $_trueType;
7
8  function error_message() {
9    return $this->error_message;
10  }
11
12  function FontFactory() {
13    $this->fonts = array();
14  }
15
16  /**
17   * Note that typeface  is not a font file  name; example of typeface
18   * name  could  be  'Times-Roman'  or  'ArialUnicodeMS'.  Note  that
19   * typeface  names  are  for  internal  use only,  as  they  do  not
20   * correspond  to  any system  font  names/parameters; all  typeface
21   * names and their relateions to system fonts are defined in html2ps
22   * config
23   *
24   * @param $typeface String name of the font typeface
25   * @param $encoding String
26   *
27   */
28  function &getTrueType($typeface, $encoding) {
29    if (!isset($this->fonts[$typeface][$encoding])) {
30      global $g_font_resolver_pdf;
31      $fontfile = $g_font_resolver_pdf->ttf_mappings[$typeface];
32
33      $font = FontTrueType::create($fontfile, $encoding);
34      if (is_null($font)) {
35        $dummy = null;
36        return $dummy;
37      };
38
39      $this->fonts[$typeface][$encoding] = $font;
40    };
41
42    return $this->fonts[$typeface][$encoding];
43  }
44
45  function &get_type1($name, $encoding) {
46    if (!isset($this->fonts[$name][$encoding])) {
47      global $g_font_resolver;
48
49      $font =& FontType1::create($name, $encoding, $g_font_resolver, $this->error_message);
50      if (is_null($font)) {
51        $dummy = null;
52        return $dummy;
53      };
54
55      $this->fonts[$name][$encoding] = $font;
56    };
57
58    return $this->fonts[$name][$encoding];
59  }
60}
61
62?>