You are here

public function DomPdf::__construct in Entity Print 8.2

Constructs a \Drupal\Component\Plugin\PluginBase object.

Parameters

array $configuration: A configuration array containing information about the plugin instance.

string $plugin_id: The plugin_id for the plugin instance.

mixed $plugin_definition: The plugin implementation definition.

Overrides PrintEngineBase::__construct

File

src/Plugin/EntityPrint/PrintEngine/DomPdf.php, line 64

Class

DomPdf
A Entity Print plugin for the DomPdf library.

Namespace

Drupal\entity_print\Plugin\EntityPrint\PrintEngine

Code

public function __construct(array $configuration, $plugin_id, $plugin_definition, ExportTypeInterface $export_type, Request $request) {
  parent::__construct($configuration, $plugin_id, $plugin_definition, $export_type);
  $this->dompdfOptions = new DompdfLibOptions($this->configuration);
  $this->dompdfOptions
    ->setTempDir(\Drupal::service('file_system')
    ->getTempDirectory());
  $this->dompdfOptions
    ->setFontCache(\Drupal::service('file_system')
    ->getTempDirectory());
  $this->dompdfOptions
    ->setFontDir(\Drupal::service('file_system')
    ->getTempDirectory());
  $this->dompdfOptions
    ->setLogOutputFile(\Drupal::service('file_system')
    ->getTempDirectory() . DIRECTORY_SEPARATOR . self::LOG_FILE_NAME);
  $this->dompdfOptions
    ->setIsRemoteEnabled($this->configuration['enable_remote']);
  $this->dompdf = new DompdfLib($this->dompdfOptions);
  if ($this->configuration['disable_log']) {
    $this->dompdfOptions
      ->setLogOutputFile('');
  }
  $this->dompdf
    ->setBaseHost($request
    ->getHttpHost())
    ->setProtocol($request
    ->getScheme() . '://');
  $this
    ->setupHttpContext();
}