Example #1
0
 /**
  * Object constructor
  *
  * @param \ZendPdf\BinaryParser\Font\OpenType\AbstractOpenType $fontParser Font parser object containing OpenType file.
  * @throws \ZendPdf\Exception\ExceptionInterface
  */
 public function __construct(OpenTypeFontParser\AbstractOpenType $fontParser)
 {
     parent::__construct();
     $fontParser->parse();
     /* Object properties */
     $this->_fontNames = $fontParser->names;
     $this->_isBold = $fontParser->isBold;
     $this->_isItalic = $fontParser->isItalic;
     $this->_isMonospaced = $fontParser->isMonospaced;
     $this->_underlinePosition = $fontParser->underlinePosition;
     $this->_underlineThickness = $fontParser->underlineThickness;
     $this->_strikePosition = $fontParser->strikePosition;
     $this->_strikeThickness = $fontParser->strikeThickness;
     $this->_unitsPerEm = $fontParser->unitsPerEm;
     $this->_ascent = $fontParser->ascent;
     $this->_descent = $fontParser->descent;
     $this->_lineGap = $fontParser->lineGap;
     $this->_glyphWidths = $fontParser->glyphWidths;
     $this->_missingGlyphWidth = $this->_glyphWidths[0];
     $this->_cmap = $fontParser->cmap;
     /* Resource dictionary */
     $baseFont = $this->getFontName(Pdf\Font::NAME_POSTSCRIPT, 'en', 'UTF-8');
     $this->_resource->BaseFont = new InternalType\NameObject($baseFont);
     $this->_resource->FirstChar = new InternalType\NumericObject(0);
     $this->_resource->LastChar = new InternalType\NumericObject(count($this->_glyphWidths) - 1);
     /* Now convert the scalar glyph widths to \ZendPdf\InternalType\NumericObect objects.
      */
     $pdfWidths = array();
     foreach ($this->_glyphWidths as $width) {
         $pdfWidths[] = new InternalType\NumericObject($this->toEmSpace($width));
     }
     /* Create the \ZendPdf\InternalType\ArrayObject object and add it to the font's
      * object factory and resource dictionary.
      */
     $widthsArrayElement = new InternalType\ArrayObject($pdfWidths);
     $widthsObject = $this->_objectFactory->newObject($widthsArrayElement);
     $this->_resource->Widths = $widthsObject;
 }
Example #2
0
 /**
  * Object constructor
  */
 public function __construct()
 {
     $this->_fontType = Pdf\Font::TYPE_STANDARD;
     parent::__construct();
     $this->_resource->Subtype = new InternalType\NameObject('Type1');
 }