diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 5e954a24c55b..fdc922fc7a80 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -82,6 +82,13 @@ class Helper 'zu' => 'zu-ZA', // Zulu ]; + public static function hasRtl($value) { + $rtlChar = '/[\x{0590}-\x{083F}]|[\x{08A0}-\x{08FF}]|[\x{FB1D}-\x{FDFF}]|[\x{FE70}-\x{FEFF}]/u'; + return preg_match($rtlChar, $value) != 0; + } + + + /** * Simple helper to invoke the markdown parser * diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index f79ec1842f71..f5c5491f36f1 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -30,11 +30,12 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use App\Http\Controllers\SettingsController; -use Barryvdh\DomPDF\Facade\Pdf; use Carbon\Carbon; use \Illuminate\Contracts\View\View; use \Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Log; +use TCPDF; +use App\Helpers\Helper; class AcceptanceController extends Controller { @@ -178,7 +179,7 @@ public function store(Request $request, $id) : RedirectResponse break; case 'App\Models\Component': - $pdf_view_route ='account.accept.accept-component-eula'; + $pdf_view_route = 'account.accept.accept-component-eula'; $component = Component::find($item->id); $display_model = $component->name; break; @@ -217,7 +218,7 @@ public function store(Request $request, $id) : RedirectResponse } elseif (!is_null($branding_settings->logo)) { $path_logo = public_path() . '/uploads/' . $branding_settings->logo; } - + $data = [ 'item_tag' => $item->asset_tag, 'item_model' => $display_model, @@ -225,9 +226,9 @@ public function store(Request $request, $id) : RedirectResponse 'item_status' => $item->assetstatus?->name, 'eula' => $item->getEula(), 'note' => $request->input('note'), - 'check_out_date' => Carbon::parse($acceptance->created_at)->format('Y-m-d'), - 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format('Y-m-d'), - 'assigned_to' => $assigned_user->present()->fullName, + 'check_out_date' => Carbon::parse($acceptance->created_at)->format('Y-m-d H:i:s'), + 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format('Y-m-d H:i:s'), + 'assigned_to' => $assigned_user->display_name, 'company_name' => $branding_settings->site_name, 'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null, 'logo' => $path_logo, @@ -235,13 +236,88 @@ public function store(Request $request, $id) : RedirectResponse 'admin' => auth()->user()->present()?->fullName, ]; + if ($pdf_view_route!='') { Log::debug($pdf_filename.' is the filename, and the route was specified.'); - $pdf = Pdf::loadView($pdf_view_route, $data); - Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output()); + //$pdf = new PDF; + + // set some language dependent data: + $lg = Array(); + $lg['a_meta_charset'] = 'UTF-8'; + $lg['w_page'] = 'page'; + + $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); + // $pdf->SetHeaderData(PDF_HEADER_LOGO, 5, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING); + // $pdf->SetHeaderData('https://snipe-it.test/uploads/snipe-logo.png', '5', $data['company_name'], $item->company?->name); + //$pdf->headerText = ('Anything you want ' . date('c')); + $pdf->setRTL(false); + //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, $data['company_name'], ''); + $pdf->setLanguageArray($lg); + $pdf->SetCreator('Snipe-IT'); + $pdf->SetAuthor($data['assigned_to']); + $pdf->SetTitle('Asset Acceptance: '.$data['item_tag']); + // $pdf->SetSubject('Document Subject'); + //$pdf->SetKeywords('keywords, here'); + $pdf->SetFont('dejavusans', '', 8, '', true); + + + $pdf->SetPrintHeader(false); + $pdf->SetPrintFooter(false); + $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); + $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + + $pdf->AddPage(); + $pdf->writeHTML('', true, 0, true, 0, ''); + + // $pdf->writeHTML(trans('general.date').': '.date($data['date_settings']), true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.asset_tag').': '.$data['item_tag'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.asset_model').': '.$data['item_model'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('admin/hardware/form.serial').': '.$data['item_serial'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.assigned_date').': '.$data['check_out_date'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.assignee').': '.$data['assigned_to'], true, 0, true, 0, ''); + $pdf->Ln(); + // $html = view($pdf_view_route, $data)->render(); + // $pdf->writeHTML($html, true, 0, true, 0, ''); + + // $eula_lines = explode("\n\n", $item->getEula()); + $eula_lines = preg_split("/\r\n|\n|\r/", $item->getEula()); + + foreach ($eula_lines as $eula_line) { + if (Helper::hasRtl($eula_line)) { + $pdf->setRTL(true); + } else { + $pdf->setRTL(false); + } + $pdf->writeHTML(Helper::parseEscapedMarkedown($eula_line), true, 0, true, 0, ''); + } + $pdf->Ln(); + $pdf->Ln(); + $pdf->setRTL(false); + $pdf->writeHTML('

', true, 0, true, 0, ''); + + if ($data['note'] != null) { + $pdf->writeHTML("".trans('general.notes') . ': ' . $data['note'], true, 0, true, 0, ''); + $pdf->Ln(); + } + + if ($data['signature'] != null) { + + $pdf->writeHTML('', true, 0, true, 0, ''); + $pdf->writeHTML('
', true, 0, true, 0, ''); + } + + $pdf->writeHTML("".trans('general.accepted_date').': '.$data['accepted_date'], true, 0, true, 0, ''); + + + $pdf_content = $pdf->Output($pdf_filename, 'S'); + + + //$html = view($pdf_view_route, $data)->render(); + //$pdf = PDF::writeHTML($html, true, false, true, false, ''); + Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf_content); } - $acceptance->accept($sig_filename, $item->getEula(), $pdf_filename, $request->input('note')); + // $acceptance->accept($sig_filename, $item->getEula(), $pdf_filename, $request->input('note')); // Send the PDF to the signing user if (($request->input('send_copy') == '1') && ($assigned_user->email !='')) { diff --git a/app/Models/Asset.php b/app/Models/Asset.php index d5b640e40a2d..d6e277174e78 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -1033,9 +1033,9 @@ public function getEula() if (($this->model) && ($this->model->category)) { if (($this->model->category->eula_text) && ($this->model->category->use_default_eula == 0)) { - return Helper::parseEscapedMarkedown($this->model->category->eula_text); + return $this->model->category->eula_text; } elseif ($this->model->category->use_default_eula == 1) { - return Helper::parseEscapedMarkedown(Setting::getSettings()->default_eula_text); + return Setting::getSettings()->default_eula_text; } else { return false; diff --git a/composer.json b/composer.json index f7b86417562e..80f072e49aa0 100644 --- a/composer.json +++ b/composer.json @@ -32,11 +32,11 @@ "arietimmerman/laravel-scim-server": "dev-laravel_11_compatibility", "bacon/bacon-qr-code": "^2.0", "barryvdh/laravel-debugbar": "^3.13", - "barryvdh/laravel-dompdf": "^2.0", "doctrine/cache": "^1.10", "doctrine/dbal": "^3.1", "doctrine/instantiator": "^1.3", "eduardokum/laravel-mail-auto-embed": "^2.0", + "elibyy/tcpdf-laravel": "^11.5", "enshrined/svg-sanitize": "^0.22.0", "erusev/parsedown": "^1.7", "fakerphp/faker": "^1.24", diff --git a/composer.lock b/composer.lock index f3a06b455651..ddd11c3a0d99 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4a00fb4c4b9a2ac161183e9ae9217298", + "content-hash": "1eb239d3c2ef234a07167a8bef9230d8", "packages": [ { "name": "alek13/slack", @@ -424,104 +424,27 @@ ], "time": "2025-07-14T11:56:43+00:00" }, - { - "name": "barryvdh/laravel-dompdf", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/laravel-dompdf.git", - "reference": "c96f90c97666cebec154ca1ffb67afed372114d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/c96f90c97666cebec154ca1ffb67afed372114d8", - "reference": "c96f90c97666cebec154ca1ffb67afed372114d8", - "shasum": "" - }, - "require": { - "dompdf/dompdf": "^2.0.7", - "illuminate/support": "^6|^7|^8|^9|^10|^11", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "larastan/larastan": "^1.0|^2.7.0", - "orchestra/testbench": "^4|^5|^6|^7|^8|^9", - "phpro/grumphp": "^1 || ^2.5", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf", - "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf" - }, - "providers": [ - "Barryvdh\\DomPDF\\ServiceProvider" - ] - }, - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Barryvdh\\DomPDF\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "A DOMPDF Wrapper for Laravel", - "keywords": [ - "dompdf", - "laravel", - "pdf" - ], - "support": { - "issues": "https://github.com/barryvdh/laravel-dompdf/issues", - "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://fruitcake.nl", - "type": "custom" - }, - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2024-04-25T13:16:04+00:00" - }, { "name": "brick/math", - "version": "0.13.1", + "version": "0.14.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04" + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/fc7ed316430118cc7836bf45faff18d5dfc8de04", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^10.1", - "vimeo/psalm": "6.8.8" + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" }, "type": "library", "autoload": { @@ -551,7 +474,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.13.1" + "source": "https://github.com/brick/math/tree/0.14.0" }, "funding": [ { @@ -559,7 +482,7 @@ "type": "github" } ], - "time": "2025-03-29T13:50:30+00:00" + "time": "2025-08-29T12:40:03+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -923,16 +846,16 @@ }, { "name": "doctrine/dbal", - "version": "3.10.1", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "3626601014388095d3af9de7e9e958623b7ef005" + "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/3626601014388095d3af9de7e9e958623b7ef005", - "reference": "3626601014388095d3af9de7e9e958623b7ef005", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c6c16cf787eaba3112203dfcd715fa2059c62282", + "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282", "shasum": "" }, "require": { @@ -948,10 +871,10 @@ }, "require-dev": { "doctrine/cache": "^1.11|^2.0", - "doctrine/coding-standard": "13.0.0", + "doctrine/coding-standard": "13.0.1", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "2.1.17", + "phpstan/phpstan": "2.1.22", "phpstan/phpstan-strict-rules": "^2", "phpunit/phpunit": "9.6.23", "slevomat/coding-standard": "8.16.2", @@ -1017,7 +940,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.10.1" + "source": "https://github.com/doctrine/dbal/tree/3.10.2" }, "funding": [ { @@ -1033,7 +956,7 @@ "type": "tidelift" } ], - "time": "2025-08-05T12:18:06+00:00" + "time": "2025-09-04T23:51:27+00:00" }, { "name": "doctrine/deprecations", @@ -1411,68 +1334,6 @@ ], "time": "2024-02-05T11:56:58+00:00" }, - { - "name": "dompdf/dompdf", - "version": "v2.0.8", - "source": { - "type": "git", - "url": "https://github.com/dompdf/dompdf.git", - "reference": "c20247574601700e1f7c8dab39310fca1964dc52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c20247574601700e1f7c8dab39310fca1964dc52", - "reference": "c20247574601700e1f7c8dab39310fca1964dc52", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "masterminds/html5": "^2.0", - "phenx/php-font-lib": ">=0.5.4 <1.0.0", - "phenx/php-svg-lib": ">=0.5.2 <1.0.0", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "ext-json": "*", - "ext-zip": "*", - "mockery/mockery": "^1.3", - "phpunit/phpunit": "^7.5 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3.5" - }, - "suggest": { - "ext-gd": "Needed to process images", - "ext-gmagick": "Improves image processing performance", - "ext-imagick": "Improves image processing performance", - "ext-zlib": "Needed for pdf stream compression" - }, - "type": "library", - "autoload": { - "psr-4": { - "Dompdf\\": "src/" - }, - "classmap": [ - "lib/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1" - ], - "authors": [ - { - "name": "The Dompdf Community", - "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" - } - ], - "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", - "homepage": "https://github.com/dompdf/dompdf", - "support": { - "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v2.0.8" - }, - "time": "2024-04-29T13:06:17+00:00" - }, { "name": "dragonmantank/cron-expression", "version": "v3.4.0", @@ -1675,6 +1536,62 @@ ], "time": "2025-03-06T22:45:56+00:00" }, + { + "name": "elibyy/tcpdf-laravel", + "version": "11.5.0", + "source": { + "type": "git", + "url": "https://github.com/elibyy/tcpdf-laravel.git", + "reference": "25d076d5f50eef9702dfa1ae889b1a599250f951" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/elibyy/tcpdf-laravel/zipball/25d076d5f50eef9702dfa1ae889b1a599250f951", + "reference": "25d076d5f50eef9702dfa1ae889b1a599250f951", + "shasum": "" + }, + "require": { + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "tecnickcom/tcpdf": "6.2.*|6.3.*|6.4.*|6.5.*|6.6.*|6.7.*|6.8.*|6.9.*|6.10.*|dev-main" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "PDF": "Elibyy\\TCPDF\\Facades\\TCPDF" + }, + "providers": [ + "Elibyy\\TCPDF\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Elibyy\\TCPDF\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "eli y", + "email": "elibyy@gmail.com" + } + ], + "description": "tcpdf support for Laravel 6, 7, 8, 9, 10, 11", + "keywords": [ + "TCPDF", + "laravel", + "pdf" + ], + "support": { + "issues": "https://github.com/elibyy/tcpdf-laravel/issues", + "source": "https://github.com/elibyy/tcpdf-laravel/tree/11.5.0" + }, + "time": "2025-06-06T08:27:48+00:00" + }, { "name": "enshrined/svg-sanitize", "version": "0.22.0", @@ -5922,96 +5839,6 @@ }, "time": "2024-04-22T22:05:04+00:00" }, - { - "name": "phenx/php-font-lib", - "version": "0.5.6", - "source": { - "type": "git", - "url": "https://github.com/dompdf/php-font-lib.git", - "reference": "a1681e9793040740a405ac5b189275059e2a9863" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a1681e9793040740a405ac5b189275059e2a9863", - "reference": "a1681e9793040740a405ac5b189275059e2a9863", - "shasum": "" - }, - "require": { - "ext-mbstring": "*" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "FontLib\\": "src/FontLib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-or-later" - ], - "authors": [ - { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" - } - ], - "description": "A library to read, parse, export and make subsets of different types of font files.", - "homepage": "https://github.com/PhenX/php-font-lib", - "support": { - "issues": "https://github.com/dompdf/php-font-lib/issues", - "source": "https://github.com/dompdf/php-font-lib/tree/0.5.6" - }, - "time": "2024-01-29T14:45:26+00:00" - }, - { - "name": "phenx/php-svg-lib", - "version": "0.5.4", - "source": { - "type": "git", - "url": "https://github.com/dompdf/php-svg-lib.git", - "reference": "46b25da81613a9cf43c83b2a8c2c1bdab27df691" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/46b25da81613a9cf43c83b2a8c2c1bdab27df691", - "reference": "46b25da81613a9cf43c83b2a8c2c1bdab27df691", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": "^7.1 || ^8.0", - "sabberworm/php-css-parser": "^8.4" - }, - "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Svg\\": "src/Svg" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" - } - ], - "description": "A library to read, parse and export to PDF SVG files.", - "homepage": "https://github.com/PhenX/php-svg-lib", - "support": { - "issues": "https://github.com/dompdf/php-svg-lib/issues", - "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.4" - }, - "time": "2024-04-08T12:52:34+00:00" - }, { "name": "php-debugbar/php-debugbar", "version": "v2.2.4", @@ -7412,20 +7239,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.0", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -7484,9 +7311,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.0" + "source": "https://github.com/ramsey/uuid/tree/4.9.1" }, - "time": "2025-06-25T14:20:11+00:00" + "time": "2025-09-04T20:59:21+00:00" }, { "name": "robrichards/xmlseclibs", @@ -7665,72 +7492,6 @@ }, "time": "2025-05-02T20:10:54+00:00" }, - { - "name": "sabberworm/php-css-parser", - "version": "v8.9.0", - "source": { - "type": "git", - "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d8e916507b88e389e26d4ab03c904a082aa66bb9", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": "^5.6.20 || ^7.0.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" - }, - "require-dev": { - "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41", - "rawr/cross-data-providers": "^2.0.0" - }, - "suggest": { - "ext-mbstring": "for parsing UTF-8 CSS" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "9.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sabberworm\\CSS\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Raphael Schweikert" - }, - { - "name": "Oliver Klee", - "email": "github@oliverklee.de" - }, - { - "name": "Jake Hotson", - "email": "jake.github@qzdesign.co.uk" - } - ], - "description": "Parser for CSS Files written in PHP", - "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", - "keywords": [ - "css", - "parser", - "stylesheet" - ], - "support": { - "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.9.0" - }, - "time": "2025-07-11T13:20:48+00:00" - }, { "name": "sebastian/comparator", "version": "5.0.3", @@ -15537,16 +15298,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.13.2", + "version": "3.13.4", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "5b5e3821314f947dd040c70f7992a64eac89025c" + "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5b5e3821314f947dd040c70f7992a64eac89025c", - "reference": "5b5e3821314f947dd040c70f7992a64eac89025c", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ad545ea9c1b7d270ce0fc9cbfb884161cd706119", + "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119", "shasum": "" }, "require": { @@ -15617,7 +15378,7 @@ "type": "thanks_dev" } ], - "time": "2025-06-17T22:17:01+00:00" + "time": "2025-09-05T05:47:09+00:00" }, { "name": "symfony/cache", diff --git a/config/app.php b/config/app.php index b494da59811f..d42210e610a2 100755 --- a/config/app.php +++ b/config/app.php @@ -300,7 +300,6 @@ App\Providers\SnipeTranslationServiceProvider::class, //we REPLACE the default Laravel translator with our own Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, - Barryvdh\DomPDF\ServiceProvider::class, /* * Package Service Providers... @@ -315,6 +314,7 @@ Unicodeveloper\DumbPassword\DumbPasswordServiceProvider::class, Eduardokum\LaravelMailAutoEmbed\ServiceProvider::class, Laravel\Socialite\SocialiteServiceProvider::class, + Elibyy\TCPDF\ServiceProvider::class, /* * Application Service Providers... @@ -371,7 +371,7 @@ 'Mail' => Illuminate\Support\Facades\Mail::class, 'Notification' => Illuminate\Support\Facades\Notification::class, 'Password' => Illuminate\Support\Facades\Password::class, - 'PDF' => Barryvdh\DomPDF\Facade::class, + 'PDF' => Elibyy\TCPDF\Facades\TCPDF::class, 'Queue' => Illuminate\Support\Facades\Queue::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class, 'Redis' => Illuminate\Support\Facades\Redis::class, diff --git a/config/pdf.php b/config/pdf.php new file mode 100644 index 000000000000..b28479879dda --- /dev/null +++ b/config/pdf.php @@ -0,0 +1,17 @@ + 'utf-8', + 'format' => 'A4', + 'author' => '', + 'subject' => '', + 'keywords' => '', + 'creator' => 'Laravel Pdf', + 'display_mode' => 'fullpage', + 'tempDir' => base_path('../temp/'), + 'pdf_a' => false, + 'pdf_a_auto' => false, + 'icc_profile_path' => '', + 'defaultCssFile' => false, + 'pdfWrapper' => 'misterspelik\LaravelPdf\Wrapper\PdfWrapper', +]; diff --git a/resources/views/account/accept/accept-asset-eula.blade.php b/resources/views/account/accept/accept-asset-eula.blade.php index 1a541f070172..77f49fb286ae 100644 --- a/resources/views/account/accept/accept-asset-eula.blade.php +++ b/resources/views/account/accept/accept-asset-eula.blade.php @@ -1,9 +1,11 @@ - + +