Mike42\Escpos\PrintBuffers\ImagePrintBuffer::writeText PHP Method

writeText() public method

public writeText ( $text )
    public function writeText($text)
    {
        if ($this->printer == null) {
            throw new LogicException("Not attached to a printer.");
        }
        if ($text == null) {
            return;
        }
        $text = trim($text, "\n");
        /* Create Imagick objects */
        $image = new \Imagick();
        $draw = new \ImagickDraw();
        $color = new \ImagickPixel('#000000');
        $background = new \ImagickPixel('white');
        /* Create annotation */
        if ($this->font !== null) {
            // Allow fallback on defaults as necessary
            $draw->setFont($this->font);
        }
        /* In Arial, size 21 looks good as a substitute for FONT_B, 24 for FONT_A */
        $draw->setFontSize($this->fontSize);
        $draw->setFillColor($color);
        $draw->setStrokeAntialias(true);
        $draw->setTextAntialias(true);
        $metrics = $image->queryFontMetrics($draw, $text);
        $draw->annotation(0, $metrics['ascender'], $text);
        /* Create image & draw annotation on it */
        $image->newImage($metrics['textWidth'], $metrics['textHeight'], $background);
        $image->setImageFormat('png');
        $image->drawImage($draw);
        // debugging if you want to view the images yourself
        //$image -> writeImage("test.png");
        /* Save image */
        $escposImage = new ImagickEscposImage();
        $escposImage->readImageFromImagick($image);
        $size = Printer::IMG_DEFAULT;
        $this->printer->bitImage($escposImage, $size);
    }