mPDF v8.0.4 – Drucken Sie benutzerdefinierte Schriftarten in der PDF-Datei

Lesezeit: 2 Minuten

Benutzeravatar von Paulo do Porto
Paulo do Porto

Der Punkt sollte sehr einfach zu lösen sein, aber ich kämpfe seit drei Tagen hart.

Ich muss nur zwei Schriftarten mit PDF Roboto-Regular und Roboto-Thin verwenden.

Ich habe das Handbuch bereits gelesen, aber leider mache ich immer noch einen Fehler oder es fehlt etwas in der Datei.
Dokumentation: https://mpdf.github.io/fonts-languages/font-names.html

Ich bekomme nur die Roboto-Normal gedruckt auf der PD-Datei, aber NICHT die Roboto-Thin

Jede Hilfe wird sehr sehr sehr geschätzt!

Datei testmpdf.php

// Load MPDF Loader
require_once __DIR__ . '/vendor/autoload.php';

use Mpdf\Mpdf;

$mpdf = new Mpdf();
$mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/custom/temp/dir/path']);

$defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];

$defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];

$mpdf= new \Mpdf\Mpdf(
['mode' => 'utf-8',
'format' => 'A4',
'margin_left' => 0,
'margin_right' => 0,
'margin_top' => 0,
'margin_bottom' => 0,
'margin_header' => 0,
'margin_footer' => 0,
'fontDir' => array_merge($fontDirs, [
        __DIR__ . '/assets/css/fonts',
    ]),
    'fontdata' => $fontData + [
        'roboto' => [
            'R' => 'Roboto-Regular.ttf',
            'I' => 'Roboto-Thin.ttf',
        ]
    ],
    'default_font' => 'roboto'

]); //use this customization


HTML-TEIL

$html="
<div class="bkg_div">
    <p><img style="margin-top:20px;margin-left:35px;" src="images/silhouette_office.png" width="80" /></p>

  <p style="font-family:roboto;font-weight:900;font-size: 30px;color: #ffffff;text-transform: uppercase;margin-left:35px;">BOOKING INVOICE</p>

  <p style="margin-left:35px;font-family:Roboto-thin;font-weight:100;">Gratid&#227;o ".$username.'. Your order has been ordered. We sent the proof of purchase by email to you.<br/>
    Order Booking Time: <b>48 hours</b> - Please make payment now before you lose your reservation!<br/>
  </p>  
</div>

CSS-Datei

li.woocommerce-order-overview__payment-method.method{
    background: #C8D2D9;
    padding: 5px;
    width: 80%;
    position: relative;
    border-bottom: 3px dotted #ECEFF1 !important;
    border-radius: 0px 0px 24px 24px;
    text-align: center;
    margin: 0px 50px 0px 50px; 
    font-family:'Roboto-thin',sans-serif;
    font-weight:100;
    letter-spacing: 0.04em;    
}

.font_p1 {
  font-weight:400;
  font-size: 30px;
  font-family: Roboto, sans-serif;
  color: #ffffff;
  text-transform: uppercase;
}

  • Was ist Ihr HTML und CSS?

    – Finwe

    19. November 2020 um 17:56 Uhr

  • Hallo @Finwe, ich habe den Code aktualisiert. Wenn Sie Fragen haben, bitte ich bin hier. Vielen Dank die Hilfe!

    – Paulo do Porto

    19. November 2020 um 18:27 Uhr

Benutzeravatar von Finwe
Finwe

Da Ihre Schriftarten in der mPDF-Instanziierung definiert sind, müssen Sie verwenden font-family: roboto (Notiz Kleinbuchstaben) allgemein und Kursivschrift für Roboto Thin.

Definieren Sie alternativ zwei Schriftfamilien:

'fontdata' => $fontData + [
    'roboto' => [
        'R' => 'Roboto-Regular.ttf',
    ],
    'roboto-thin' => [
        'R' => 'Roboto-Thin.ttf',
    ]
],

und verwenden roboto und roboto-thin für die Deklaration der Schriftfamilie.

  • Hallo @Finwe, vielen Dank für deine riesige Hilfe. du hast meinen Tag gerettet! Es wirkt wie ein Zauber! ; )

    – Paulo do Porto

    20. November 2020 um 1:00 Uhr

1435010cookie-checkmPDF v8.0.4 – Drucken Sie benutzerdefinierte Schriftarten in der PDF-Datei

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy