<?php namespace Xentral\Components\Barcode; final class Qrcode { /** @var string TYPE_QRCODE */ const TYPE_DEFAULT = 'QRCODE'; /** @var string TYPE_EC_LOW Low error correction */ const TYPE_EC_LOW = 'QRCODE,L'; /** @var string TYPE_EC_MEDIUM Medium error correction */ const TYPE_EC_MEDIUM = 'QRCODE,M'; /** @var string TYPE_EC_QUARTILE Better error correction */ const TYPE_EC_QUARTILE = 'QRCODE,Q'; /** @var string TYPE_EC_HIGH Best error correction */ const TYPE_EC_HIGH = 'QRCODE,H'; /** @var array $validTypes */ public static $validTypes = [ self::TYPE_DEFAULT, self::TYPE_EC_LOW, self::TYPE_EC_MEDIUM, self::TYPE_EC_QUARTILE, self::TYPE_EC_HIGH, ]; /** @var TcpdfBarcode2d $barcode */ private $barcode; /** * @param TcpdfBarcode2d $barcode */ public function __construct(TcpdfBarcode2d $barcode) { $this->barcode = $barcode; } /** * @return string */ public function getText() { return $this->barcode->getText(); } /** * Returns the QR code as array representation * * @return array */ public function toArray() { return $this->barcode->getBarcodeArray(); } /** * Returns the QR code as HTML representation * * @param int $width Width of a single rectangle element in pixels. * @param int $height Height of a single rectangle element in pixels. * @param string $color Foreground color for bar elements (background is transparent). * * @return string HTML code */ public function toHtml($width = 10, $height = 10, $color = 'black') { return $this->barcode->getBarcodeHtml($width, $height, $color); } /** * Returns the QR code as SVG document * * @param int $width Width of a single rectangle element in user units * @param int $height Height of a single rectangle element in user units * @param string $color Foreground color (in SVG format) for bar elements (background is transparent) * * @return string SVG document */ public function toSvg($width = 10, $height = 10, $color = 'black') { return $this->barcode->getBarcodeSvg($width, $height, $color); } /** * Returns the QR code as PNG image (requires GD or Imagick library) * * @param int $width Width of a single rectangle element in pixels * @param int $height Height of a single rectangle element in pixels * @param array $color RGB-Array (0-255) foreground color for bar elements (background is transparent) * * @return string Image as string */ public function toPng($width = 10, $height = 10, $color = [0, 0, 0]) { return $this->barcode->getBarcodePng($width, $height, $color); } }