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