xref: /plugin/dw2pdf/vendor/mpdf/qrcode/src/Output/Html.php (revision fb347f35dc824cf59875d883dbf86d311f54de06)
1*fb347f35SAndreas Gohr<?php
2*fb347f35SAndreas Gohr
3*fb347f35SAndreas Gohrnamespace Mpdf\QrCode\Output;
4*fb347f35SAndreas Gohr
5*fb347f35SAndreas Gohruse Mpdf\QrCode\QrCode;
6*fb347f35SAndreas Gohr
7*fb347f35SAndreas Gohrclass Html
8*fb347f35SAndreas Gohr{
9*fb347f35SAndreas Gohr
10*fb347f35SAndreas Gohr	/**
11*fb347f35SAndreas Gohr	 * @param \Mpdf\QrCode\QrCode $qrCode
12*fb347f35SAndreas Gohr	 *
13*fb347f35SAndreas Gohr	 * @return string
14*fb347f35SAndreas Gohr	 */
15*fb347f35SAndreas Gohr	public function output(QrCode $qrCode)
16*fb347f35SAndreas Gohr	{
17*fb347f35SAndreas Gohr		$s = '';
18*fb347f35SAndreas Gohr
19*fb347f35SAndreas Gohr		$qrSize = $qrCode->getQrSize();
20*fb347f35SAndreas Gohr		$final = $qrCode->getFinal();
21*fb347f35SAndreas Gohr
22*fb347f35SAndreas Gohr		if ($qrCode->isBorderDisabled()) {
23*fb347f35SAndreas Gohr			$minSize = 4;
24*fb347f35SAndreas Gohr			$maxSize = $qrSize - 4;
25*fb347f35SAndreas Gohr		} else {
26*fb347f35SAndreas Gohr			$minSize = 0;
27*fb347f35SAndreas Gohr			$maxSize = $qrSize;
28*fb347f35SAndreas Gohr		}
29*fb347f35SAndreas Gohr
30*fb347f35SAndreas Gohr		$s .= '<table class="qr" cellpadding="0" cellspacing="0" style="font-size: 1px;">' . "\n";
31*fb347f35SAndreas Gohr
32*fb347f35SAndreas Gohr		for ($y = $minSize; $y < $maxSize; $y++) {
33*fb347f35SAndreas Gohr			$s .= '<tr style="height: 4px;">';
34*fb347f35SAndreas Gohr			for ($x = $minSize; $x < $maxSize; $x++) {
35*fb347f35SAndreas Gohr				$on = $final[$x + $y * $qrSize + 1];
36*fb347f35SAndreas Gohr				$s .= '<td class="' . ($on ? 'on' : 'off') . '" style="width: 4px; background-color: ' . ($on ? '#000' : '#FFF') . '">&nbsp;</td>';
37*fb347f35SAndreas Gohr			}
38*fb347f35SAndreas Gohr			$s .= '</tr>' . "\n";
39*fb347f35SAndreas Gohr		}
40*fb347f35SAndreas Gohr
41*fb347f35SAndreas Gohr		$s .= '</table>';
42*fb347f35SAndreas Gohr
43*fb347f35SAndreas Gohr		return $s;
44*fb347f35SAndreas Gohr	}
45*fb347f35SAndreas Gohr
46*fb347f35SAndreas Gohr}
47