font_array = array(); $this->append(null); } public function append($params) { $font["name"] = (isset($params["name"]) ? $params["name"] : XLSFILE_DEFAULT_FONTNAME); $font["height"] = (isset($params["height"]) ? $params["height"]*20 : XLSFILE_DEFAULT_FONTHEIGHT); $font["weight"] = (isset($params["weight"]) ? $params["weight"] : XLSFONT_NORMAL); $font["color"] = (isset($params["color"]) ? $params["color"] : XLSFILE_DEFAULT_FGCOLOR); $font["underline"] = (isset($params["underline"]) ? $params["underline"] : XLSFONT_UNDERLINE_NONE); $font["escapement"] = (isset($params["escapement"]) ? $params["escapement"] : XLSFONT_ESCAPE_NONE); $font["family"] = (isset($params["family"]) ? $params["family"] : XLSFONT_FAMILY_NORMAL); $font["style"] = (isset($params["style"]) ? $params["style"] : 0x0000); $font["characterset"] = XLSFILE_CHARACTERSET; $s = serialize($font); unset($font); $fontidx = array_search($s,$this->font_array); if ($fontidx===false) { $this->font_array[] = $s; $fontidx = array_search($s,$this->font_array); } if ($fontidx>0) { $fontidx += 5; // first 5 reserved, +5 for user defined font } $fontidx += (($fontidx==4) ? 1 : 0); return $fontidx; } public function save($filehandle,$xls_biffobject) { $font0 = unserialize($this->font_array[0]); $xls_biffobject->clear(BIFF_FONT); $xls_biffobject->append(XLSDATA_SHORT,$font0["height"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["style"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["color"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["weight"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["escapement"]); $xls_biffobject->append(XLSDATA_BYTE,$font0["underline"]); $xls_biffobject->append(XLSDATA_BYTE,$font0["family"]); $xls_biffobject->append(XLSDATA_BYTE,$font0["characterset"]); $xls_biffobject->append(XLSDATA_BYTE,0x0000); $xls_biffobject->append(XLSDATA_STRING,$font0["name"]); $repeatdefault = 4; while ($repeatdefault>0) { $xls_biffobject->save($filehandle); $repeatdefault--; } $i=0; while ($i!=count($this->font_array)) { $font0 = unserialize($this->font_array[$i]); $xls_biffobject->clear(BIFF_FONT); $xls_biffobject->append(XLSDATA_SHORT,$font0["height"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["style"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["color"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["weight"]); $xls_biffobject->append(XLSDATA_SHORT,$font0["escapement"]); $xls_biffobject->append(XLSDATA_BYTE,$font0["underline"]); $xls_biffobject->append(XLSDATA_BYTE,$font0["family"]); $xls_biffobject->append(XLSDATA_BYTE,$font0["characterset"]); $xls_biffobject->append(XLSDATA_BYTE,0x0000); $xls_biffobject->append(XLSDATA_STRING,$font0["name"]); $xls_biffobject->save($filehandle); $i++; } } } ?>