Bilder werden im Kontext des print-core speziell behandelt. Statt einem base64-Bild oder einem Bildpfad in dem src-Attributes zu definieren, sollte \Brandbox\PrintCore\PrintDocument\Image\Manager::get verwendet werden. Diese Funktion gibt eine URL mit einem Request für das Ausliefern des Bilds zurück. Hintergrund ist, dass in der Webdarstellung Bilder wie .tiff in pngs umgewandelt werden müssen und beim Generieren des PDFs die höchste Auflösung ausgeliefert werden sollte.
Beispiel
use Brandbox\Framework\Base\File; use Brandbox\Framework\Base\Image as BaseImage; use Brandbox\PrintCore\PrintDocument\Image as PrintDocumentImage; use Brandbox\PrintLayoutStandard\View\PrintImage; use Brandbox\PrintStyleguide; private function image(PrintStyleguide\Entity\PrintImage $element, PrintImage\Lib\Entity\PrintViewImage $source): void { $file = $this->getFile($source->image); $attributes = $this->getImageAttributes($file, $source); $image = $this->getImage($file, $source); if ('' !== $image) { $element->settings['src'] = $image; $element->settings['width'] = $attributes->getWidth(); $element->settings['height'] = $attributes->getHeight(); } } private function getImage(File\lib\entity\mamFile $file, PrintImage\Lib\Entity\PrintViewImage $source): string { $image = new PrintDocumentImage\Lib\Struct\ImageRequest(); $image->file = $file; $image->width = $source->width; $image->height = $source->height; $image->crop = $source->crop; return $this ->staticController(PrintDocumentImage\Manager::class) ->get($image) ; } private function getFile(string $path): File\lib\entity\mamFile { return $this ->staticController(File\Manager::class) ->findByPath($path, true) ; } private function getImageAttributes(File\lib\entity\mamFile $file, PrintImage\Lib\Entity\PrintViewImage $source): BaseImage\Lib\Struct\ImageAttributes { $params = []; if ($source->crop) { $params['crop'] = $source->crop; } $attributes = $this ->staticController(File\Manager::class) ->imageAttributes($file, $source->width, $source->height, $params) ; $source->width = $attributes->getWidth(); $source->height = $attributes->getHeight(); return $attributes; }