From befd48d053211a35ade142cd962a03aa7257fcd2 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 21 Feb 2024 11:23:52 +0200 Subject: [PATCH] dompdf page size in mm --- .../Tools/Pdf/Dompdf/DompdfInitializer.php | 4 ++- upgrades/8.2/scripts/AfterUpgrade.php | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/application/Espo/Tools/Pdf/Dompdf/DompdfInitializer.php b/application/Espo/Tools/Pdf/Dompdf/DompdfInitializer.php index ad21b4ae13..ef31e5b27b 100644 --- a/application/Espo/Tools/Pdf/Dompdf/DompdfInitializer.php +++ b/application/Espo/Tools/Pdf/Dompdf/DompdfInitializer.php @@ -38,6 +38,8 @@ class DompdfInitializer { private string $defaultFontFace = 'DejaVu Sans'; + private const PT = 2.83465; + public function __construct( private Config $config ) {} @@ -51,7 +53,7 @@ class DompdfInitializer $pdf = new Dompdf($options); $size = $template->getPageFormat() === Template::PAGE_FORMAT_CUSTOM ? - [0.0, 0.0, $template->getPageWidth(), $template->getPageHeight()] : + [0.0, 0.0, $template->getPageWidth() * self::PT, $template->getPageHeight() * self::PT] : $template->getPageFormat(); $orientation = $template->getPageOrientation() === Template::PAGE_ORIENTATION_PORTRAIT ? diff --git a/upgrades/8.2/scripts/AfterUpgrade.php b/upgrades/8.2/scripts/AfterUpgrade.php index c5bd91c257..5c8ced4a07 100644 --- a/upgrades/8.2/scripts/AfterUpgrade.php +++ b/upgrades/8.2/scripts/AfterUpgrade.php @@ -29,7 +29,11 @@ use Espo\Core\Container; use Espo\Core\InjectableFactory; +use Espo\Core\Utils\Config; use Espo\Core\Utils\Config\ConfigWriter; +use Espo\Entities\Template; +use Espo\ORM\EntityManager; +use Espo\Tools\Pdf\Template as PdfTemplate; /** @noinspection PhpMultipleClassDeclarationsInspection */ class AfterUpgrade @@ -44,5 +48,35 @@ class AfterUpgrade ]); $configWriter->save(); + + $em = $container->getByClass(EntityManager::class); + $config = $container->getByClass(Config::class); + + $this->updateTemplates($em, $config); + } + + private function updateTemplates(EntityManager $entityManager, Config $config): void + { + if ($config->get('pdfEngine') !== 'Dompdf') { + return; + } + + /** @var iterable