43 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Picqer\Barcode;
 | 
						|
 | 
						|
class BarcodeGeneratorHTML extends BarcodeGenerator
 | 
						|
{
 | 
						|
 | 
						|
    /**
 | 
						|
     * Return an HTML representation of barcode.
 | 
						|
     *
 | 
						|
     * @param string $code code to print
 | 
						|
     * @param string $type type of barcode
 | 
						|
     * @param int $widthFactor Width of a single bar element in pixels.
 | 
						|
     * @param int $totalHeight Height of a single bar element in pixels.
 | 
						|
     * @param int|string $color Foreground color for bar elements (background is transparent).
 | 
						|
     * @return string HTML code.
 | 
						|
     * @public
 | 
						|
     */
 | 
						|
    public function getBarcode($code, $type, $widthFactor = 2, $totalHeight = 30, $color = 'black')
 | 
						|
    {
 | 
						|
        $barcodeData = $this->getBarcodeData($code, $type);
 | 
						|
 | 
						|
        $html = '<div style="font-size:0;position:relative;width:' . ($barcodeData['maxWidth'] * $widthFactor) . 'px;height:' . ($totalHeight) . 'px;">' . "\n";
 | 
						|
 | 
						|
        $positionHorizontal = 0;
 | 
						|
        foreach ($barcodeData['bars'] as $bar) {
 | 
						|
            $barWidth = round(($bar['width'] * $widthFactor), 3);
 | 
						|
            $barHeight = round(($bar['height'] * $totalHeight / $barcodeData['maxHeight']), 3);
 | 
						|
 | 
						|
            if ($bar['drawBar']) {
 | 
						|
                $positionVertical = round(($bar['positionVertical'] * $totalHeight / $barcodeData['maxHeight']), 3);
 | 
						|
                // draw a vertical bar
 | 
						|
                $html .= '<div style="background-color:' . $color . ';width:' . $barWidth . 'px;height:' . $barHeight . 'px;position:absolute;left:' . $positionHorizontal . 'px;top:' . $positionVertical . 'px;"> </div>' . "\n";
 | 
						|
            }
 | 
						|
 | 
						|
            $positionHorizontal += $barWidth;
 | 
						|
        }
 | 
						|
 | 
						|
        $html .= '</div>' . "\n";
 | 
						|
 | 
						|
        return $html;
 | 
						|
    }
 | 
						|
} |