Add font and configuration for dompdf

This commit is contained in:
benguozakinci@gmail.com 2021-09-06 13:35:41 +03:00
parent abd55133f1
commit e72561278b
9 changed files with 45 additions and 12 deletions

View File

@ -14,6 +14,8 @@ use App\Jobs\Document\UpdateDocument;
use App\Models\Document\Document; use App\Models\Document\Document;
use App\Notifications\Sale\Invoice as Notification; use App\Notifications\Sale\Invoice as Notification;
use App\Traits\Documents; use App\Traits\Documents;
use Dompdf\Dompdf;
use Dompdf\Options;
class Invoices extends Controller class Invoices extends Controller
{ {
@ -289,21 +291,35 @@ class Invoices extends Controller
*/ */
public function pdfInvoice(Document $invoice) public function pdfInvoice(Document $invoice)
{ {
define("DOMPDF_UNICODE_ENABLED", true);
mb_internal_encoding('UTF-8');
$options = new Options();
$options->set('defaultFont', 'Noto Sans');
$dompdf = new Dompdf($options);
$dompdf->set_option('defaultMediaType', 'all');
$dompdf->set_option('isFontSubsettingEnabled', true);
$dompdf->setPaper('A4', 'portrait');
$file_name = $this->getDocumentFileName($invoice);
event(new \App\Events\Document\DocumentPrinting($invoice)); event(new \App\Events\Document\DocumentPrinting($invoice));
$currency_style = true; $currency_style = true;
$view = view($invoice->template_path, compact('invoice', 'currency_style'))->render(); $view = view($invoice->template_path, compact('invoice', 'currency_style'))->render();
$html = mb_convert_encoding($view, 'HTML-ENTITIES', 'UTF-8'); $html = mb_convert_encoding($view, 'HTML-ENTITIES', 'UTF-8');
$pdf = app('dompdf.wrapper'); $dompdf = app('dompdf.wrapper');
$pdf->loadHTML($html);
$dompdf->loadHTML($html, 'UTF-8');
//$pdf->setPaper('A4', 'portrait'); // return $pdf->download($file_name);
$file_name = $this->getDocumentFileName($invoice); return $dompdf->stream();
return $pdf->download($file_name);
} }
/** /**

View File

@ -78,7 +78,7 @@ return [
/** /**
* Whether to enable font subsetting or not. * Whether to enable font subsetting or not.
*/ */
"enable_font_subsetting" => false, "enable_font_subsetting" => true,
/** /**
* The PDF rendering backend to use * The PDF rendering backend to use
@ -151,7 +151,7 @@ return [
* Used if no suitable fonts can be found. This must exist in the font folder. * Used if no suitable fonts can be found. This must exist in the font folder.
* @var string * @var string
*/ */
"default_font" => "DejaVu Sans, sans-serif", "default_font" => "",
/** /**
* Image DPI setting * Image DPI setting

Binary file not shown.

13
public/css/print.css vendored
View File

@ -1,11 +1,22 @@
@charset "UTF-8"; @charset "UTF-8";
/*--General Start--*/ /*--General Start--*/
@font-face {
font-family: 'Noto Sans';
src: url("public/fonts/NotoSans-Regular.ttf") format("truetype");
}
* {
font-family: 'Noto Sans', sans-serif !important;
}
body body
{ {
margin: 0; margin: 0;
padding: 0; padding: 0;
font-family: Arial, sans-serif; font-family: 'Noto Sans';
color: #3c3f72; color: #3c3f72;
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -4,7 +4,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8; charset=ISO-8859-1"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8;"/>
<title>@yield('title') - @setting('company.name')</title> <title>@yield('title') - @setting('company.name')</title>
@ -14,14 +14,20 @@
<link rel="icon" href="{{ asset('public/img/favicon.ico') }}" type="image/png"> <link rel="icon" href="{{ asset('public/img/favicon.ico') }}" type="image/png">
<!-- Css --> <!-- Css -->
<link rel="stylesheet" href="{{ asset('public/css/print.css?v=' . version('short')) }}" type="text/css">
<style type="text/css"> <style type="text/css">
@font-face {
font-family: "Noto Sans",
src: url("{{ asset('public/fonts/NotoSans-Regular.ttf') }}") format("truetype");
}
* { * {
font-family: DejaVu Sans, sans-serif !important; font-family: 'Noto Sans', sans-serif !important;
} }
</style> </style>
<link rel="stylesheet" href="{{ asset('public/css/print.css?v=' . version('short')) }}" type="text/css">
@stack('css') @stack('css')
@stack('stylesheet') @stack('stylesheet')