2017-09-02 3 views
0

Je sais que cette question n'est pas posée la première fois, mais tous les autres threads ne m'ont pas aidé à le faire fonctionner. Je dois obtenir mon propre travail de police dans mon appel mPDF. En lire que la version 7, je peux charger ma propre police sans changer le config_fonts.php. Voici mon essai:Problèmes pour charger sa propre police dans mPDF

$mpdf = new \mPDF('utf-8','A4',''); 

$mpdf->fontDir = './assets/fonts/'; 
$mpdf->fontdata = array(
    "qanela" => array(
     'R' => "QanelasSoft-Regular.ttf", 
     'B' => "QanelasSoft-Bold.ttf", 
    ), 
); 

$mpdf->SetFont('qanela'); 

avec ce code, je reçois le errormessage

MPDF Erreur - police n'est pas pris en charge - dejavusanscondensed.

est appelée à partir

MPDF/fournisseur/MPDF/MPDF/mpdf.php

sur la ligne 3809 avec

if (isset! ($ This- -> fontdata [$ family] [$ stylekey]) ||! $ this-> fontdata [$ family] [$ stylekey]) { throw nouveau MpdfException ('Erreur mPDF - La police n'est pas supportée -'. $ family. ' '. $ st yle); }

J'espère que quelqu'un pourra m'aider.

Vive

+0

Je ne vois pas la relation entre votre code et l'erreur, qui concerne une police complètement différente? –

+0

Salut, je ne sais pas. Je n'utilise pas le dejavusanscondensed n'importe où. Je pense que cette erreur vient de mon tableau où je charge ma nouvelle police. – JFS

+0

Je pense que DejaVu est la police standard, elle devrait toujours être là. –

Répondre

0

Votre exemple de code est en quelque sorte bizarre:

  • Pour pouvoir utiliser fontDir propriété, vous devez utiliser MPDF 7.x
  • Votre création d'instance de MPDF new \mPDF suggère 6.x - 7.x a une signature avec espace de noms new \Mpdf\Mpdf()
  • Dans 6.x, vous pouvez définir votre propre répertoire de polices en définissant la constante _MPDF_SYSTEM_TTFONTS:

define('_MPDF_SYSTEM_TTFONTS', './assets/fonts/');


En lire cette version 7 je peux charger mon propre police sans changer la config_fonts.php

Il n'y a pas de fichier dans config_fonts.php v 7. Toutes les modifications La configuration peut être effectuée dans le paramètre $config du constructeur ou en modifiant la propriété fontdata de l'instance mPDF après la création de l'objet - comme vous essayez de le faire. Voir ci-dessous.


Aussi, essayez de joindre vos paramètres de police à la propriété fontdata au lieu de passer outre son contenu:

$mpdf->fontdata['qanela'] = 
    array(
     'R' => "QanelasSoft-Regular.ttf", 
     'B' => "QanelasSoft-Bold.ttf", 
    ); 
+0

Bonjour, merci, vous avez raison, j'utilise la version 6.1. Je pensais que le temps de trou que j'utilise v 7. Mais c'est aussi en bêta que la documentation s'arrête à la version 6. – JFS

+0

La documentation pour 7.x est en cours de préparation dans la branche 'development' de son repo github https: // github.com/mpdf/mpdf.github.io. Pas trop confortable, mais l'information peut être trouvée là. – Finwe

0

Vous ne voulez pas passer outre le tableau entier fontdata (qui est ce que vous faites). Au lieu de cela, ajoutez votre nouvel enregistrement à la fin de celui-ci.Puis, assurez-vous que vos fichiers de polices TTF sont stockés dans le répertoire ttfonts.