Pop\Pdf\Pdf::addImage PHP Метод

addImage() публичный Метод

Method to add an image to the PDF.
public addImage ( string $image, integer $x, integer $y, mixed $scl = null, boolean $preserveRes = true ) : Pdf
$image string
$x integer
$y integer
$scl mixed
$preserveRes boolean
Результат Pdf
    public function addImage($image, $x, $y, $scl = null, $preserveRes = true)
    {
        if (array_key_exists($image, $this->images) && $preserveRes) {
            $i = $this->lastIndex($this->objects) + 1;
            $co_index = $this->images[$image]['index'];
            if (null !== $scl) {
                $dims = Parser\Image::getScaledDimensions($scl, $this->images[$image]['origW'], $this->images[$image]['origH']);
                $imgWidth = $dims['w'];
                $imgHeight = $dims['h'];
            } else {
                $imgWidth = $this->images[$image]['origW'];
                $imgHeight = $this->images[$image]['origH'];
            }
            $this->objects[$this->objects[$this->pages[$this->curPage]]->curContent]->setStream("\nq\n" . $imgWidth . " 0 0 " . $imgHeight . " {$x} {$y} cm\n/I{$co_index} Do\nQ\n");
            $this->objects[$this->objects[$this->pages[$this->curPage]]->index]->xobjs[] = $this->images[$image]['xobj'];
        } else {
            // Create image parser object
            $i = $this->lastIndex($this->objects) + 1;
            $imageParser = new Parser\Image($image, $x, $y, $i, $scl, $preserveRes);
            $imageObjects = $imageParser->getObjects();
            foreach ($imageObjects as $key => $value) {
                $this->objects[$key] = $value;
            }
            // Add the image to the current page's xobject array and content stream.
            $this->objects[$this->objects[$this->pages[$this->curPage]]->index]->xobjs[] = $imageParser->getXObject();
            $co_index = $this->getContentObject();
            $this->objects[$co_index]->setStream($imageParser->getStream());
            if ($preserveRes) {
                $this->images[$image] = array('index' => $i, 'origW' => $imageParser->getOrigW(), 'origH' => $imageParser->getOrigH(), 'xobj' => $imageParser->getXObject());
            }
        }
        return $this;
    }

Usage Example

Пример #1
0
    $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');
    $pdf->addText(50, 650, 36, 'Hello World Again!', 'Courier-Bold');
    $pdf->addUrl(50, 650, 380, 36, 'http://www.popphp.org/');
    $pdf->orderPages(array(3, 1, 2));
    $pdf->output();
} catch (\Exception $e) {
    echo $e->getMessage();
}
All Usage Examples Of Pop\Pdf\Pdf::addImage