xref: /plugin/dw2pdf/vendor/mpdf/mpdf/src/Conversion/DecToOther.php (revision 020943cf6f7e0527dd64a6e17f7972aa6480584c)
1<?php
2
3namespace Mpdf\Conversion;
4
5use Mpdf\Mpdf;
6
7class DecToOther
8{
9
10	/**
11	 * @var \Mpdf\Mpdf
12	 */
13	private $mpdf;
14
15	public function __construct(Mpdf $mpdf)
16	{
17		$this->mpdf = $mpdf;
18	}
19
20	public function convert($num, $cp, $check = true)
21	{
22		// From printlistbuffer: font is set, so check if character is available
23		// From docPageNum: font is not set, so no check
24		$nstr = (string) $num;
25		$rnum = '';
26
27		for ($i = 0; $i < strlen($nstr); $i++) {
28			if (!$check || $this->mpdf->_charDefined($this->mpdf->CurrentFont['cw'], $cp + ((int) $nstr[$i]))) {
29				$rnum .= code2utf($cp + (int) $nstr[$i]);
30			} else {
31				$rnum .= $nstr[$i];
32			}
33		}
34
35		return $rnum;
36	}
37
38	/**
39	 * @param string $script
40	 * @return int
41	 */
42	public function getCodePage($script)
43	{
44		$codePages = [
45			'arabic-indic' => 0x0660,
46			'persian' => 0x06F0,
47			'urdu' => 0x06F0,
48			'bengali' => 0x09E6,
49			'devanagari' => 0x0966,
50			'gujarati' => 0x0AE6,
51			'gurmukhi' => 0x0A66,
52			'kannada' => 0x0CE6,
53			'malayalam' => 0x0D66,
54			'oriya' => 0x0B66,
55			'telugu' => 0x0C66,
56			'tamil' => 0x0BE6,
57			'thai' => 0x0E50,
58			'khmer' => 0x17E0,
59			'cambodian' => 0x17E0,
60			'lao' => 0x0ED0,
61		];
62
63		return isset($codePages[$script]) ? $codePages[$script] : 0;
64	}
65
66}
67