Pop\Pdf\Pdf::addText PHP Method

addText() public method

Method to add text to the PDF.
public addText ( integer $x, integer $y, integer $size, string $str, string $font = null ) : Pdf
$x integer
$y integer
$size integer
$str string
$font string
return Pdf
    public function addText($x, $y, $size, $str, $font = null)
    {
        // Check to see if the font already exists on another page.
        $fontExists = false;
        if (null === $font) {
            $font = $this->getLastFontName();
        }
        if (function_exists('mb_strlen')) {
            if (mb_strlen($str, 'UTF-8') < strlen($str)) {
                $str = utf8_decode($str);
            }
        }
        foreach ($this->pages as $value) {
            if (array_key_exists($font, $this->objects[$value]->fonts)) {
                $this->objects[$this->objects[$this->pages[$this->curPage]]->index]->fonts[$font] = $this->objects[$value]->fonts[$font];
                $fontObj = substr($this->objects[$this->objects[$this->pages[$this->curPage]]->index]->fonts[$font], 1, strpos(' ', $this->objects[$this->objects[$this->pages[$this->curPage]]->index]->fonts[$font]) + 3);
                $fontExists = true;
            }
        }
        // If the font does not already exist, add it.
        if (!$fontExists) {
            if (isset($this->pages[$this->curPage]) && isset($this->objects[$this->pages[$this->curPage]]) && isset($this->objects[$this->objects[$this->pages[$this->curPage]]->index]) && array_key_exists($font, $this->objects[$this->objects[$this->pages[$this->curPage]]->index]->fonts)) {
                $fontObj = substr($this->objects[$this->objects[$this->pages[$this->curPage]]->index]->fonts[$font], 1, strpos(' ', $this->objects[$this->objects[$this->pages[$this->curPage]]->index]->fonts[$font]) + 3);
            } else {
                throw new Exception('Error: The font \'' . $font . '\' has not been added to the PDF.');
            }
        }
        // Add the text to the current page's content stream.
        $co_index = $this->getContentObject();
        $this->objects[$co_index]->setStream("\nBT\n    /{$fontObj} {$size} Tf\n    " . $this->calcTextMatrix() . " {$x} {$y} Tm\n    " . $this->textParams['c'] . " Tc " . $this->textParams['w'] . " Tw " . $this->textParams['rend'] . " Tr\n    ({$str})Tj\nET\n");
        return $this;
    }

Usage Example

Exemplo n.º 1
0
<?php

require_once '../../bootstrap.php';
use Pop\Color\Space\Rgb;
use Pop\Pdf\Pdf;
try {
    $pdf = new Pdf('../tmp/doc.pdf');
    $pdf->addPage('Letter');
    $pdf->setVersion('1.4')->setTitle('Test Title')->setAuthor('Test Author')->setSubject('Test Subject')->setCreateDate(date('D, M j, Y h:i A'));
    $pdf->setCompression(true);
    $pdf->setTextParams(6, 6, 100, 100, 30, 0)->setFillColor(new Rgb(12, 101, 215))->setStrokeColor(new Rgb(215, 101, 12));
    $pdf->addFont('Arial');
    $pdf->addText(50, 620, 18, 'Hello World! & You!', 'Arial');
    $pdf->setTextParams();
    $pdf->addFont('Courier-Bold');
    $pdf->addText(150, 350, 48, 'Hello World!', 'Courier-Bold');
    $sz = $pdf->getStringSize('Hello World!', 'Courier-Bold', 48);
    $pdf->addUrl(150, 350 - $sz['baseline'], $sz['width'], $sz['height'], 'http://www.google.com/');
    $pdf->addPage('Letter');
    $pdf->setFillColor(new Rgb(12, 101, 215))->setStrokeColor(new Rgb(215, 101, 12))->setStrokeWidth(4, 10, 5);
    $pdf->drawCircle(150, 700, 60, false);
    $pdf->setPage(1)->setFillColor(new Rgb(0, 0, 255));
    $pdf->drawRectangle(100, 550, 175, 50);
    $pdf->addLink(100, 550, 175, 50, 150, 550, 1, 2);
    $pdf->setPage(2)->setFillColor(new Rgb(12, 101, 215))->setStrokeColor(new Rgb(215, 101, 12))->setStrokeWidth(4, 10, 5);
    $pdf->drawCircle(250, 650, 25);
    $pdf->addImage('../assets/images/logo-rgb.jpg', 150, 400);
    $pdf->setPage(1)->setFillColor(new Rgb(255, 10, 25))->setStrokeColor(new Rgb(12, 101, 215))->setStrokeWidth(2);
    $pdf->drawEllipse(300, 150, 200, 100, false);
    $pdf->addPage('Legal');
    $pdf->addFont('Courier-Bold');
All Usage Examples Of Pop\Pdf\Pdf::addText