You are here

public function ConvertToPdf::output in PDF using mPDF 8.2

Output PDF file

1 call to ConvertToPdf::output()
ConvertToPdf::generator in src/Conversion/ConvertToPdf.php

File

src/Conversion/ConvertToPdf.php, line 220

Class

ConvertToPdf

Namespace

Drupal\pdf_using_mpdf\Conversion

Code

public function output() {
  $filename = $this->settings['pdf_filename'];
  switch ($this->settings['pdf_save_option']) {
    case 0:

      // Web browser
      try {

        // Set (if not already) title to show on the browser as file name
        if (empty($this->settings['pdf_set_title'])) {
          $this->mpdf
            ->SetTitle($filename . '.pdf');
        }
        $this->mpdf
          ->Output($filename, \Mpdf\Output\Destination::INLINE);
      } catch (MpdfException $e) {
        $message = 'Web browser: PDF file generation error. ' . $e
          ->getMessage();
        $this->logger
          ->get('pdf_using_mpdf')
          ->critical($message);
      }
      break;
    case 1:

      // Save Dialog box
      try {
        $this->mpdf
          ->Output($filename . '.pdf', \Mpdf\Output\Destination::DOWNLOAD);
      } catch (MpdfException $e) {
        $message = 'Download: PDF file generation error. ' . $e
          ->getMessage();
        $this->logger
          ->get('pdf_using_mpdf')
          ->critical($message);
      }
      break;
    case 2:

      // Save to server
      try {
        $scheme = \Drupal::config('system.file')
          ->get('default_scheme');
        $folder = \Drupal::service('file_system')
          ->realpath($scheme . "://");
        $path = $folder . '/pdf_using_mpdf/' . $filename . '.pdf';
        $this->mpdf
          ->Output($path, \Mpdf\Output\Destination::FILE);
        \Drupal::messenger()
          ->addStatus(t('PDF file %filename saved to %path', [
          '%filename' => $filename . '.pdf',
          '%path' => $folder,
        ]));
      } catch (MpdfException $e) {
        $message = 'Save to server: PDF file generation error. ' . $e
          ->getMessage();
        $this->logger
          ->get('pdf_using_mpdf')
          ->critical($message);
      }
      break;
  }
}