Erich FuchsErich Fuchs MemberComments: 12 Received thanks: 14 Member since: October 2014 edited February 2015
also wer eine andere Schriftart / Font (als die Standard Schrift Arial) in den PDF Dokumenten (Rechnung, Lieferschein, Gutschrift, ...) verwenden muss oder will, kann dies relativ einfach tun :)

nach langem Suchen hab ich dann doch herausgefunden wie es geht :sunglasses:

wer lesen kann ist klar im Vorteil :D
./engine/Library/Mpdf/README.txt

hier mal ein einfaches Beispiel für die Schriftart "Ubuntu"

zuerst die Schriftart Dateien aus dem Netz laden und ev. umbenennen, z.B.:

ubuntu.ttf (Normal)
ubuntub.ttf (Bold)
ubuntui.ttf (Italic)
ubuntubi.ttf (Bold & Italic)

dann auf den Server, in das Verzeichnis:
./engine/Library/Mpdf/ttfonts

dann die Datei ./engine/Library/Mpdf/config_fonts.php bearbeiten und das Font-Array hinzufügen, z.B.
$this->fontdata = array(
...
...
...
"ubuntu" => array(
 'R' => "ubuntu.ttf",
 'B' => "ubuntub.ttf",
 'I' => "ubuntui.ttf",
 'BI' => "ubuntubi.ttf",
 )
);
DAS wars - ab sofort ist es dann möglich via CSS den Body-Style tag die "font-family" mit fallback zu ändern, z.B.:

###############
width:100%;
font-family: Ubuntu, Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
###############

Ich hoffe, das ist für jemand da draussen nutzbar, ich habe leider viele Stunden verplempert mit der Suche

L.G. aus Wien

Comments

  • almutealmute MemberComments: 71 Received thanks: 2 Member since: May 2012
    Hallo Erich,

    vielen Dank für den Hinweis.
    Nun bleibt mir aber leider noch eine Frage:
    DAS wars - ab sofort ist es dann möglich via CSS den Body-Style tag die "font-family" mit fallback zu ändern, z.B.:

    ###############
    width:100%;
    font-family: Ubuntu, Verdana, Arial, Helvetica, sans-serif;
    font-size:12px;
    
    ###############
    Wo finde ich die CSS für die PDF-Dokumente?

    Vielen Dank, Almute
  • tradebytradeby MemberComments: 181 Received thanks: 6 Member since: December 2014
    almute wrote:
    Hallo Erich,

    vielen Dank für den Hinweis.
    Nun bleibt mir aber leider noch eine Frage:
    DAS wars - ab sofort ist es dann möglich via CSS den Body-Style tag die "font-family" mit fallback zu ändern, z.B.:

    ###############
    width:100%;
    font-family: Ubuntu, Verdana, Arial, Helvetica, sans-serif;
    font-size:12px;
    
    ###############
    Wo finde ich die CSS für die PDF-Dokumente?

    Vielen Dank, Almute
    Hallo

    Du findest das hier:
    20876480rd.jpg

    Gruss
    Cyril
  • AndrewAndrew MemberComments: 133 Received thanks: 2 Member since: October 2015

    Ich habe das mit FontAwesome probiert, aber die Dokumente werden nur mit Rechtecken ausgegeben.

    Selbst wenn auch andere Font-Familien eingebunden sind.

    Und wichtig: Man muss unbedingt die Groß-/Kleinschreibung beachten, sonst erkennt die CSS Klasse eine neue Schrift nicht :-)

  • AndrewAndrew MemberComments: 133 Received thanks: 2 Member since: October 2015

    Ein Hinweis noch: die ./engine/Library/Mpdf/config_fonts.php ist nicht updatesicher.

    Beim Update von SW 5.2 -> 5.3 wurde diese überschrieben.

    Also auf dem Schirm behalten, dass man die Anpassungen nochmal schnell machen muss (nur in der Datei, andere Einstellungen blieben verschont).

  • brixlentbrixlent MemberComments: 9 Received thanks: 0 Member since: September 2016

    Gibt es eine Lösung die Datei config_fonts.php for Updates zu schützen bzw. zusätzliche Configs anderweitig abzulegen?

  • Erich FuchsErich Fuchs MemberComments: 12 Received thanks: 14 Member since: October 2014

    seit 5.5.x wurde MPDF auf die neueste Version umgestellt -> eine neue Schriftart muss nun in die /engine/Shopware/Configs/Default.php - für Schriftart Ubuntu z.B.

        'mpdf' => [
            // Passed to \Mpdf\Mpdf::__construct:
            'defaultConfig' => [
                'tempDir' => $this->getCacheDir() . '/mpdf/',
                'fontDir' => $this->DocPath('engine_Library_Mpdf_ttfonts_'),
                'fonttrans' => [
                    'helvetica' => 'arial',
                    'verdana' => 'arial',
                    'times' => 'timesnewroman',
                    'courier' => 'couriernew',
                    'trebuchet' => 'arial',
                    'comic' => 'arial',
                    'franklin' => 'arial',
                    'albertus' => 'arial',
                    'arialuni' => 'arial',
                    'zn_hannom_a' => 'arial',
                    'ocr-b' => 'ocrb',
                    'ocr-b10bt' => 'ocrb',
                    'damase' => 'mph2bdamase',
                ],
                'fontdata' => [
                    'arial' => [
                        'R' => 'arial.ttf',
                        'B' => 'arialbd.ttf',
                        'I' => 'ariali.ttf',
                        'BI' => 'arialbi.ttf',
                    ],
                    'couriernew' => [
                        'R' => 'cour.ttf',
                        'B' => 'courbd.ttf',
                        'I' => 'couri.ttf',
                        'BI' => 'courbi.ttf',
                    ],
                    'georgia' => [
                        'R' => 'georgia.ttf',
                        'B' => 'georgiab.ttf',
                        'I' => 'georgiai.ttf',
                        'BI' => 'georgiaz.ttf',
                    ],
                    'timesnewroman' => [
                        'R' => 'times.ttf',
                        'B' => 'timesbd.ttf',
                        'I' => 'timesi.ttf',
                        'BI' => 'timesbi.ttf',
                    ],
                    'verdana' => [
                        'R' => 'verdana.ttf',
                        'B' => 'verdanab.ttf',
                        'I' => 'verdanai.ttf',
                        'BI' => 'verdanaz.ttf',
                    ],
                    'ubuntu' => [
                        'R' => 'ubuntu.ttf',
                        'B' => 'ubuntub.ttf',
                        'I' => 'ubuntui.ttf',
                        'BI' => 'ubuntuz.ttf',
                    ],
                ],
            ],
        ],
    

     

    Thanked by 1Andrew
  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 7863 Received thanks: 2303 Member since: September 2013

    seit 5.5.x wurde MPDF auf die neueste Version umgestellt -> eine neue Schriftart muss nun in die /engine/Shopware/Configs/Default.php - für Schriftart Ubuntu z.B.

        'mpdf' => [
            // Passed to \Mpdf\Mpdf::__construct:
            'defaultConfig' => [
                'tempDir' => $this->getCacheDir() . '/mpdf/',
                'fontDir' => $this->DocPath('engine_Library_Mpdf_ttfonts_'),
                'fonttrans' => [
                    'helvetica' => 'arial',
                    'verdana' => 'arial',
                    'times' => 'timesnewroman',
                    'courier' => 'couriernew',
                    'trebuchet' => 'arial',
                    'comic' => 'arial',
                    'franklin' => 'arial',
                    'albertus' => 'arial',
                    'arialuni' => 'arial',
                    'zn_hannom_a' => 'arial',
                    'ocr-b' => 'ocrb',
                    'ocr-b10bt' => 'ocrb',
                    'damase' => 'mph2bdamase',
                ],
                'fontdata' => [
                    'arial' => [
                        'R' => 'arial.ttf',
                        'B' => 'arialbd.ttf',
                        'I' => 'ariali.ttf',
                        'BI' => 'arialbi.ttf',
                    ],
                    'couriernew' => [
                        'R' => 'cour.ttf',
                        'B' => 'courbd.ttf',
                        'I' => 'couri.ttf',
                        'BI' => 'courbi.ttf',
                    ],
                    'georgia' => [
                        'R' => 'georgia.ttf',
                        'B' => 'georgiab.ttf',
                        'I' => 'georgiai.ttf',
                        'BI' => 'georgiaz.ttf',
                    ],
                    'timesnewroman' => [
                        'R' => 'times.ttf',
                        'B' => 'timesbd.ttf',
                        'I' => 'timesi.ttf',
                        'BI' => 'timesbi.ttf',
                    ],
                    'verdana' => [
                        'R' => 'verdana.ttf',
                        'B' => 'verdanab.ttf',
                        'I' => 'verdanai.ttf',
                        'BI' => 'verdanaz.ttf',
                    ],
                    'ubuntu' => [
                        'R' => 'ubuntu.ttf',
                        'B' => 'ubuntub.ttf',
                        'I' => 'ubuntui.ttf',
                        'BI' => 'ubuntuz.ttf',
                    ],
                ],
            ],
        ],
    

     

    Besser in die config.php packen - da die ja auch bei einem Update nicht überschrieben wird. Die default.php liefert ja nur die Default-Werte, die können per config.php erweitert werden. Das ist dann auch Updatesicher :) 

    Thanked by 1Andrew
  • Erich FuchsErich Fuchs MemberComments: 12 Received thanks: 14 Member since: October 2014

    ja perfekt - gehört in die config.php

  • sommunikationsommunikation MemberComments: 35 Received thanks: 2 Member since: September 2012

    Hallo und Hilfe :)

    Nach dem Update auf 5.5.3 ist nun der Ordner /engine/Libary/Mpdf leer, einzig der Unterordner /ttfonts mit den jeweiligen ttf-Dateien existiert noch darin. Da wir früher auch über die config_fonts.php bei mpdf Schriften nachgeladen haben, sind diese nun in der /engine/Shopware/Configs/Default.php nachgeladen - aber: die Schriften werden nicht genommen. Konkret geht es um die Open Sans. Wie kann ich den Fehler weiter eingrenzen und v.a. in welche config.php kann ich das updatesicher schreiben? Hier mal zur Übersicht:

    1. mpdf Config in der Default.php um OpenSans erweitert: 

     'mpdf' => [
            // Passed to \Mpdf\Mpdf::__construct:
            'defaultConfig' => [
                'tempDir' => $this->getCacheDir() . '/mpdf/',
                'fontDir' => $this->DocPath('engine_Library_Mpdf_ttfonts_'),
                'fonttrans' => [
                    'helvetica' => 'arial',
                    'verdana' => 'arial',
                    'times' => 'timesnewroman',
                    'courier' => 'couriernew',
                    'trebuchet' => 'arial',
                    'comic' => 'arial',
                    'franklin' => 'arial',
                    'albertus' => 'arial',
                    'arialuni' => 'arial',
                    'zn_hannom_a' => 'arial',
                    'ocr-b' => 'ocrb',
                    'ocr-b10bt' => 'ocrb',
                    'damase' => 'mph2bdamase',
                ],
                'fontdata' => [
                    'arial' => [
                        'R' => 'arial.ttf',
                        'B' => 'arialbd.ttf',
                        'I' => 'ariali.ttf',
                        'BI' => 'arialbi.ttf',
                    ],
                    'couriernew' => [
                        'R' => 'cour.ttf',
                        'B' => 'courbd.ttf',
                        'I' => 'couri.ttf',
                        'BI' => 'courbi.ttf',
                    ],
                    'georgia' => [
                        'R' => 'georgia.ttf',
                        'B' => 'georgiab.ttf',
                        'I' => 'georgiai.ttf',
                        'BI' => 'georgiaz.ttf',
                    ],
                    'timesnewroman' => [
                        'R' => 'times.ttf',
                        'B' => 'timesbd.ttf',
                        'I' => 'timesi.ttf',
                        'BI' => 'timesbi.ttf',
                    ],
                    'verdana' => [
                        'R' => 'verdana.ttif',
                        'B' => 'verdanab.ttf',
                        'I' => 'verdanai.ttf',
                        'BI' => 'verdanaz.ttf',
                    ],
        			'OpenSans' => [
            			'R' => 'OpenSans-Light.ttf',
            			'B' => 'OpenSans-Semibold.ttf',
            			'I' => 'OpenSans-LightItalic.ttf',
            			'BI' => 'OpenSans-Semibolditalic.ttf',
    	            ],
    	        ],
                'format' => 'A4',
            ],
        ],

     

    2. Die ttf-Dateien liegen in /engine/Libary/Mpdf/ttfonts - Alle Rechte unverändert, passen.

    3. Im CSS für den Dokumentenbody steht seit Jahr und Tag: font-family: 'OpenSans', sans-serif;

    und wenn ich das PDF rendern lasse, bekomme ich ein PDF mit Arial :( Es gab bei mpdf mal so ein Setting, dass es nur mit Core-Fonts arbeitet, das konnte ich aber nirgends finden. Wer kann helfen?

     

  • ChaosChaos MemberComments: 54 Received thanks: 0 Member since: July 2011

     

    @sommunikation Hat bei mir aber auf 5.5.3 nach deiner Anleitung funktioniert nachdem ich den Cache geleert habe!

  • HilleHille MemberComments: 85 Received thanks: 4 Member since: November 2015

    Besser in die config.php packen - da die ja auch bei einem Update nicht überschrieben wird. Die default.php liefert ja nur die Default-Werte, die können per config.php erweitert werden. Das ist dann auch Updatesicher :) 

    Wie genau müsste die config.php mit dem oben genannten Beispiel (Ubuntu Font) aussehen? Per Default.php bekomme ich das Einbinden der zusätlichen Schriftart hin, aber nicht per config.php

  • Erich FuchsErich Fuchs MemberComments: 12 Received thanks: 14 Member since: October 2014
    <?php return [ 
    
      'db' => [
        'username' => 'username',
        'password' => 'password',
        'host' => 'localhost',
        'port' => '3306',
        'dbname' => 'databasename',
      ],
    
      'mpdf' => [
            // Passed to \Mpdf\Mpdf::__construct:
            'defaultConfig' => [
                'tempDir' => $this->getCacheDir() . '/mpdf/',
                'fontDir' => $this->DocPath('engine_Library_Mpdf_ttfonts_'),
                'fonttrans' => [
                    'helvetica' => 'arial',
                    'verdana' => 'arial',
                    'times' => 'timesnewroman',
                    'courier' => 'couriernew',
                    'trebuchet' => 'arial',
                    'comic' => 'arial',
                    'franklin' => 'arial',
                    'albertus' => 'arial',
                    'arialuni' => 'arial',
                    'zn_hannom_a' => 'arial',
                    'ocr-b' => 'ocrb',
                    'ocr-b10bt' => 'ocrb',
                    'damase' => 'mph2bdamase',
                ],
                'fontdata' => [
                    'arial' => [
                        'R' => 'arial.ttf',
                        'B' => 'arialbd.ttf',
                        'I' => 'ariali.ttf',
                        'BI' => 'arialbi.ttf',
                    ],
                    'couriernew' => [
                        'R' => 'cour.ttf',
                        'B' => 'courbd.ttf',
                        'I' => 'couri.ttf',
                        'BI' => 'courbi.ttf',
                    ],
                    'georgia' => [
                        'R' => 'georgia.ttf',
                        'B' => 'georgiab.ttf',
                        'I' => 'georgiai.ttf',
                        'BI' => 'georgiaz.ttf',
                    ],
                    'timesnewroman' => [
                        'R' => 'times.ttf',
                        'B' => 'timesbd.ttf',
                        'I' => 'timesi.ttf',
                        'BI' => 'timesbi.ttf',
                    ],
                    'verdana' => [
                        'R' => 'verdana.ttf',
                        'B' => 'verdanab.ttf',
                        'I' => 'verdanai.ttf',
                        'BI' => 'verdanaz.ttf',
                    ],
                    'ubuntu' => [
                        'R' => 'ubuntu.ttf',
                        'B' => 'ubuntub.ttf',
                        'I' => 'ubuntui.ttf',
                        'BI' => 'ubuntuz.ttf',
                    ],
                ],
            ],
      ],
    
    ];

    Besser in die config.php packen - da die ja auch bei einem Update nicht überschrieben wird. Die default.php liefert ja nur die Default-Werte, die können per config.php erweitert werden. Das ist dann auch Updatesicher :) 

    Wie genau müsste die config.php mit dem oben genannten Beispiel (Ubuntu Font) aussehen? Per Default.php bekomme ich das Einbinden der zusätlichen Schriftart hin, aber nicht per config.php

  • vanwittlaervanwittlaer MemberComments: 338 Received thanks: 84 Member since: September 2015

    Für alle, die bis hierhin gelesen haben :-) noch ein einfaches Beispiel für die Anpassung der config.php:
     

    <?php return [
    
        ...
    
        'mpdf' => [
            'defaultConfig' => [
                'fontDir' => [
                    // the default font dir - leave this for use of standard fonts such as Arial etc.
                    $this->DocPath('engine_Library_Mpdf_ttfonts_'),
                    // your custom font dir
                    $this->DocPath('themes_Frontend_Hvtp_documents__public_src_ttfonts'),
                ],
                // define the relation between font name in CSS, e.g. 'opensans' and the associated TTF files
                'fontdata' => [
                    'opensans' => [
                        'R' => 'OpenSans-Regular.ttf',
                        'B' => 'OpenSans-Bold.ttf',
                        'I' => 'OpenSans-Italic.ttf',
                        'BI' => 'OpenSans-BoldItalic.ttf',
                    ],
                    'fontawesome' => [
                        'R' => 'fontawesome.ttf',
                    ]
                ],
            ],
        ],
    
    ...
    
    ];
    

    Ich würde empfehlen, die TTF-Dateien für die Fonts in ein Unterverzeichnis im Custom-Theme zu legen, wie in diesem Beispiel. Damit kannst Du alle in der default.php schon eingestellten Fonts weiterbenutzen, es werden lediglich die aus der config.php zusätzlich definiert.

    Thanked by 1Moritz Naczenski
Sign In or Register to comment.