From 9f58ccb028b2a931db63117a51a8ca57db9df46a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Fri, 25 Dec 2020 14:15:57 +0100 Subject: [PATCH] Add support for custom Chromium path (ie. support for Windows & Mac) --- app/Http/Controllers/SetupController.php | 8 ++++++-- app/Utils/Traits/Pdf/PdfMaker.php | 4 ++++ config/ninja.php | 1 + tests/Pdf/PdfGenerationTest.php | 12 +++++++++--- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 8d01cd86082e..ed3054c0800f 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -221,9 +221,13 @@ class SetupController extends Controller return $this->testPhantom(); } - $snappdf = new Snappdf(); + $pdf = new Snappdf(); - $pdf = $snappdf + if (config('ninja.snappdf_chromium_path')) { + $pdf->setChromiumPath(config('ninja.snappdf_chromium_path')); + } + + $pdf = $pdf ->setHtml('GENERATING PDFs WORKS! Thank you for using Invoice Ninja!') ->generate(); diff --git a/app/Utils/Traits/Pdf/PdfMaker.php b/app/Utils/Traits/Pdf/PdfMaker.php index bfd81a570b44..000b94bce159 100644 --- a/app/Utils/Traits/Pdf/PdfMaker.php +++ b/app/Utils/Traits/Pdf/PdfMaker.php @@ -29,6 +29,10 @@ trait PdfMaker { $pdf = new Snappdf(); + if (config('ninja.snappdf_chromium_path')) { + $pdf->setChromiumPath(config('ninja.snappdf_chromium_path')); + } + return $pdf ->setHtml($html) ->generate(); diff --git a/config/ninja.php b/config/ninja.php index 4f42fc0bf523..0bb7e0d09f07 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -137,4 +137,5 @@ return [ ], 'log_pdf_html' => env('LOG_PDF_HTML', false), 'expanded_logging' => env('EXPANDED_LOGGING', false), + 'snappdf_chromium_path' => env('SNAPPDF_CHROMIUM_PATH', false), ]; diff --git a/tests/Pdf/PdfGenerationTest.php b/tests/Pdf/PdfGenerationTest.php index a4c6211fe7af..bdfb8464d438 100644 --- a/tests/Pdf/PdfGenerationTest.php +++ b/tests/Pdf/PdfGenerationTest.php @@ -1,4 +1,5 @@ setChromiumPath(config('ninja.snappdf_chromium_path')); + } + + $pdf = $pdf ->setHtml('

Invoice Ninja

') ->generate();