You are here

public function GeneratePdf::generate in PDF using mPDF 8.2

Same name and namespace in other branches
  1. 8 src/Controller/GeneratePdf.php \Drupal\pdf_using_mpdf\Controller\GeneratePdf::generate()

Generate a PDF for a given node

Parameters

NodeInterface|null $node:

Return value

RedirectResponse

1 string reference to 'GeneratePdf::generate'
pdf_using_mpdf.routing.yml in ./pdf_using_mpdf.routing.yml
pdf_using_mpdf.routing.yml

File

src/Controller/GeneratePdf.php, line 62

Class

GeneratePdf

Namespace

Drupal\pdf_using_mpdf\Controller

Code

public function generate($node = NULL) {

  // Use 'full' view mode, this can be altered via hooks, if needed
  $view = $this->entityTypeManager
    ->getViewBuilder('node')
    ->view($node);
  $renderedNode = render($view)
    ->__toString();

  // Let other modules alter HTML for PDF generation
  $this->moduleHandler
    ->alter('mpdf_html', $renderedNode, $node);

  // Let other modules alter and overwrite mPDF settings
  $settings = $this->convertToPdf
    ->getConfig();
  $this->moduleHandler
    ->alter('mpdf_settings', $settings, $node);
  $this->convertToPdf
    ->convert($renderedNode, $settings, [
    'node' => $node,
  ]);
  $url = Url::fromRoute('entity.node.canonical', [
    'node' => $node
      ->id(),
  ], [
    'absolute' => TRUE,
  ]);
  return new RedirectResponse($url
    ->toString());
}