police helvetica ne fonctionne pas en wkhtmltopdf

j'ai essayé d'utiliser la police Helvetica lors de la création du pdf, mais la police n'est pas renvoyée en pdf.

j'ai fait un peu de google et j'ai trouvé des solutions mais aucune ne sont réalisables.

Essayé La Solution 1

j'ai trouvé la même chose ici : problème de police

essayé la dernière solution mentionnée là-bas

la solution est de définir le @font-face dans votre css et avoir le lien src à l'hôte externe qui est accessible par wkhtmltopdf

mais la solution ne fonctionne pas.

Essayé La Solution 2 J'ai aussi essayé d'utiliser l'api google font, mais le résultat n'est pas encore réalisable. police helvetica

voici un exemple exemple de police personnalisée

Essayé La Solution 3 J'ai essayé de le faire en utilisant CSS property @page. Mais aussi n'est pas de travail.

Quelle est l'approche pour une solution réalisable?

19
demandé sur Community 2013-04-01 19:24:53

6 réponses

la façon la plus facile de corriger est de Base64 Encoder la police (vous pouvez utiliser cet outil) et l'inclure dans votre CSS:

@font-face {
    font-family: 'Helvetica';
    src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQA...
}

cela fonctionne avec toutes les polices (y compris Google Fonts), et garantit la compatibilité multiplateforme entre les différentes machines et systèmes d'exploitation.

28
répondu Arman H 2014-09-04 18:22:43

pour moi, le chargement de polices à partir de Google Fonts n'a pas fonctionné. Et mettre base64ed binaire dans un fichier CSS semble un peu trop pour moi(les types coréens sont plusieurs mégaoctets). Je recommande d'installer les polices que vous devez utiliser sur la machine. Pour Ubuntu, vous pouvez simplement télécharger des fichiers de polices à partir de Google Fonts et copier les fichiers dans $HOME/.fonts répertoire et exécutez fc-cache commande en ligne de commande pour reconstruire la liste des polices.

$ mkdir ~/.fonts
$ copy your-font-file.ttf ~/.fonts/
$ fc-cache -fv

pour une application Rails vous pouvez lien symbolique

$ ln -s /your/app/root/assets/fonts ~/.fonts

vous pourrez alors lister toutes les polices disponibles.

$ fc-list
Nimbus Sans L:style=Regular Italic
URW Palladio L:style=Roman
Century Schoolbook L:style=Bold Italic
Nimbus Sans L:style=Bold
URW Chancery L:style=Medium Italic
Nimbus Roman No9 L:style=Regular
Century Schoolbook L:style=Bold
Century Schoolbook L:style=Italic
Nimbus Sans L:style=Regular
....
6
répondu baxang 2014-10-13 09:42:47

Pour les ajouter à la mêlée, à l'aide de wkhtmltopdf 0.12.1 (with patched qt) sur linux, cela a fonctionné pour moi:

@font-face {
    font-family: dejaSansMono;
    src: url('file:///usr/share/fonts/dejavu/DejaVuSansMono.ttf');
}