Skip to content
Snippets Groups Projects

Default to drupal root and allow for base_url overrides.

Files
2
@@ -81,6 +81,7 @@ class DomPdf extends PdfEngineBase implements ContainerFactoryPluginInterface {
$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->dompdfOptions->setChroot([\Drupal::getContainer()->getParameter('app.root')]);
$this->dompdfOptions->setIsFontSubsettingEnabled($this->configuration['font_subsetting']);
$this->dompdfOptions->setIsPhpEnabled($this->configuration['embedded_php']);
@@ -92,6 +93,32 @@ class DomPdf extends PdfEngineBase implements ContainerFactoryPluginInterface {
$this->dompdf
->setBaseHost($request->getHttpHost())
->setProtocol($request->getScheme() . '://');
// Take the base url setting into account.
if (!empty($this->configuration['base_url'])) {
$base_url = parse_url($this->configuration['base_url']);
if (!empty($base_url['scheme'])) {
$this->dompdf->setProtocol($base_url['scheme'] . '://');
if (!empty($base_url['host'])) {
$host = $base_url['host'];
if (!empty($base_url['port'])) {
$host .= ':' . $base_url['port'];
}
$this->dompdf->setBaseHost($host);
if (!empty($base_url['path'])) {
$this->dompdf->setBasePath($base_url['path']);
}
}
else {
// Assuming file protocol.
$this->dompdf->setBaseHost($base_url['path']);
// We need to make sure domPdf allows access to our file path.
$this->dompdfOptions->setChroot($base_url['path']);
}
}
}
$this->setupHttpContext();
}
/**
Loading