1<?php 2 3namespace Mpdf\Tag; 4 5use Mpdf\Cache; 6use Mpdf\Color\ColorConverter; 7use Mpdf\CssManager; 8use Mpdf\Form; 9use Mpdf\Image\ImageProcessor; 10use Mpdf\Language\LanguageToFontInterface; 11use Mpdf\Mpdf; 12use Mpdf\Otl; 13use Mpdf\SizeConverter; 14use Mpdf\TableOfContents; 15 16abstract class Tag 17{ 18 /** 19 * @var \Mpdf\Mpdf 20 */ 21 protected $mpdf; 22 23 /** 24 * @var \Mpdf\Cache 25 */ 26 protected $cache; 27 28 /** 29 * @var \Mpdf\CssManager 30 */ 31 protected $cssManager; 32 33 /** 34 * @var \Mpdf\Form 35 */ 36 protected $form; 37 38 /** 39 * @var \Mpdf\Otl 40 */ 41 protected $otl; 42 43 /** 44 * @var \Mpdf\TableOfContents 45 */ 46 protected $tableOfContents; 47 48 /** 49 * @var \Mpdf\SizeConverter 50 */ 51 protected $sizeConverter; 52 53 /** 54 * @var \Mpdf\Color\ColorConverter 55 */ 56 protected $colorConverter; 57 58 /** 59 * @var \Mpdf\Image\ImageProcessor 60 */ 61 protected $imageProcessor; 62 63 /** 64 * @var \Mpdf\Language\LanguageToFontInterface 65 */ 66 protected $languageToFont; 67 68 const ALIGN = [ 69 'left' => 'L', 70 'center' => 'C', 71 'right' => 'R', 72 'top' => 'T', 73 'text-top' => 'TT', 74 'middle' => 'M', 75 'baseline' => 'BS', 76 'bottom' => 'B', 77 'text-bottom' => 'TB', 78 'justify' => 'J' 79 ]; 80 81 public function __construct( 82 Mpdf $mpdf, 83 Cache $cache, 84 CssManager $cssManager, 85 Form $form, 86 Otl $otl, 87 TableOfContents $tableOfContents, 88 SizeConverter $sizeConverter, 89 ColorConverter $colorConverter, 90 ImageProcessor $imageProcessor, 91 LanguageToFontInterface $languageToFont 92 ) { 93 94 $this->mpdf = $mpdf; 95 $this->cache = $cache; 96 $this->cssManager = $cssManager; 97 $this->form = $form; 98 $this->otl = $otl; 99 $this->tableOfContents = $tableOfContents; 100 $this->sizeConverter = $sizeConverter; 101 $this->colorConverter = $colorConverter; 102 $this->imageProcessor = $imageProcessor; 103 $this->languageToFont = $languageToFont; 104 } 105 106 public function getTagName() 107 { 108 $tag = get_class($this); 109 return strtoupper(str_replace('Mpdf\Tag\\', '', $tag)); 110 } 111 112 abstract public function open($attr, &$ahtml, &$ihtml); 113 114 abstract public function close(&$ahtml, &$ihtml); 115 116} 117