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