You are here

protected function PrintBuilder::prepareRenderer in Entity Print 8.2

Configure the print engine with the passed entities.

Parameters

array $entities: An array of entities.

\Drupal\entity_print\Plugin\PrintEngineInterface $print_engine: The print engine.

bool $use_default_css: TRUE if we want the default CSS included.

Return value

\Drupal\entity_print\Renderer\RendererInterface A print renderer.

2 calls to PrintBuilder::prepareRenderer()
PrintBuilder::deliverPrintable in src/PrintBuilder.php
Render any content entity as a Print.
PrintBuilder::savePrintable in src/PrintBuilder.php
Render any content entity as a printed document and save to disk.

File

src/PrintBuilder.php, line 116

Class

PrintBuilder
The print builder service.

Namespace

Drupal\entity_print

Code

protected function prepareRenderer(array $entities, PrintEngineInterface $print_engine, $use_default_css) {
  if (empty($entities)) {
    throw new \InvalidArgumentException('You must pass at least 1 entity');
  }
  $renderer = $this->rendererFactory
    ->create($entities);
  $content = $renderer
    ->render($entities);
  $first_entity = reset($entities);
  $render = [
    '#theme' => 'entity_print__' . $first_entity
      ->getEntityTypeId() . '__' . $first_entity
      ->bundle(),
    '#title' => $this
      ->t('View @type', [
      '@type' => $print_engine
        ->getExportType()
        ->label(),
    ]),
    '#content' => $content,
    '#attached' => [],
  ];
  $print_engine
    ->addPage($renderer
    ->generateHtml($entities, $render, $use_default_css, TRUE));
  return $renderer;
}