/** * Get font record data * * @return string */ public function writeFont() { $font_outline = 0; $font_shadow = 0; $icv = $this->_colorIndex; // Index to color palette if ($this->_font->getSuperScript()) { $sss = 1; } else { if ($this->_font->getSubScript()) { $sss = 2; } else { $sss = 0; } } $bFamily = 0; // Font family $bCharSet = 0; // Character set $record = 0x31; // Record identifier $reserved = 0x0; // Reserved $grbit = 0x0; // Font attributes if ($this->_font->getItalic()) { $grbit |= 0x2; } if ($this->_font->getStriketrough()) { $grbit |= 0x8; } if ($font_outline) { $grbit |= 0x10; } if ($font_shadow) { $grbit |= 0x20; } if ($this->_BIFFVersion == 0x500) { $data = pack("vvvvvCCCCC", $this->_font->getSize() * 20, $grbit, $icv, $this->_mapBold($this->_font->getBold()), $sss, $this->_mapUnderline($this->_font->getUnderline()), $bFamily, $bCharSet, $reserved, strlen($this->_font->getName())); $data .= $this->_font->getName(); } elseif ($this->_BIFFVersion == 0x600) { $data = pack("vvvvvCCCC", $this->_font->getSize() * 20, $grbit, $icv, $this->_mapBold($this->_font->getBold()), $sss, $this->_mapUnderline($this->_font->getUnderline()), $bFamily, $bCharSet, $reserved); $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($this->_font->getName()); } $length = strlen($data); $header = pack("vv", $record, $length); return $header . $data; }
/** * Write Font * * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer * @param PHPExcel_Style_Font $pFont Font style * @throws Exception */ private function _writeFont(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Font $pFont = null) { // font $objWriter->startElement('font'); // Name $objWriter->startElement('name'); $objWriter->writeAttribute('val', $pFont->getName()); $objWriter->endElement(); // Size $objWriter->startElement('sz'); $objWriter->writeAttribute('val', $pFont->getSize()); $objWriter->endElement(); // Bold if ($pFont->getBold()) { $objWriter->startElement('b'); $objWriter->writeAttribute('val', 'true'); $objWriter->endElement(); } // Italic if ($pFont->getItalic()) { $objWriter->startElement('i'); $objWriter->writeAttribute('val', 'true'); $objWriter->endElement(); } // Superscript / subscript if ($pFont->getSuperScript() || $pFont->getSubScript()) { $objWriter->startElement('vertAlign'); if ($pFont->getSuperScript()) { $objWriter->writeAttribute('val', 'superscript'); } else { if ($pFont->getSubScript()) { $objWriter->writeAttribute('val', 'subscript'); } } $objWriter->endElement(); } // Underline $objWriter->startElement('u'); $objWriter->writeAttribute('val', $pFont->getUnderline()); $objWriter->endElement(); // Striketrough if ($pFont->getStriketrough()) { $objWriter->startElement('strike'); $objWriter->writeAttribute('val', 'true'); $objWriter->endElement(); } // Foreground color $objWriter->startElement('color'); $objWriter->writeAttribute('rgb', $pFont->getColor()->getARGB()); $objWriter->endElement(); $objWriter->endElement(); }
/** * Create CSS style (PHPExcel_Style_Font) * * @param PHPExcel_Style_Font $pStyle PHPExcel_Style_Font * @return string */ private function _createCSSStyleFont(PHPExcel_Style_Font $pStyle) { // Construct HTML $html = ''; // Create CSS if ($pStyle->getBold()) { $html .= ' font-weight: bold;' . "\r\n"; } if ($pStyle->getUnderline() != PHPExcel_Style_Font::UNDERLINE_NONE && $pStyle->getStriketrough()) { $html .= ' text-decoration: underline line-through;' . "\r\n"; } else { if ($pStyle->getUnderline() != PHPExcel_Style_Font::UNDERLINE_NONE) { $html .= ' text-decoration: underline;' . "\r\n"; } else { if ($pStyle->getStriketrough()) { $html .= ' text-decoration: line-through;' . "\r\n"; } } } if ($pStyle->getItalic()) { $html .= ' font-style: italic;' . "\r\n"; } $html .= ' color: ' . '#' . $pStyle->getColor()->getRGB() . ';' . "\r\n"; $html .= ' font-family: ' . $pStyle->getName() . ';' . "\r\n"; $html .= ' font-size: ' . $pStyle->getSize() . 'pt;' . "\r\n"; // Return return $html; }
/** * Write Font * * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer * @param PHPExcel_Style_Font $pFont Font style * @throws Exception */ private function _writeFont(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Font $pFont = null) { // font $objWriter->startElement('font'); // Name $objWriter->startElement('name'); $objWriter->writeAttribute('val', $pFont->getName()); $objWriter->endElement(); // Size $objWriter->startElement('sz'); $objWriter->writeAttribute('val', $pFont->getSize()); $objWriter->endElement(); // Bold $objWriter->startElement('b'); $objWriter->writeAttribute('val', $pFont->getBold() ? 'true' : 'false'); $objWriter->endElement(); // Italic $objWriter->startElement('i'); $objWriter->writeAttribute('val', $pFont->getItalic() ? 'true' : 'false'); $objWriter->endElement(); // Underline $objWriter->startElement('u'); $objWriter->writeAttribute('val', $pFont->getUnderline()); $objWriter->endElement(); // Striketrough $objWriter->startElement('strike'); $objWriter->writeAttribute('val', $pFont->getStriketrough() ? 'true' : 'false'); $objWriter->endElement(); // Foreground color $objWriter->startElement('color'); $objWriter->writeAttribute('rgb', $pFont->getColor()->getARGB()); $objWriter->endElement(); $objWriter->endElement(); }