Comment mettre en œuvre des polices personnalisées dans TCPDF
13 réponses
la dernière version de TCPDF convertit automatiquement les polices au format TCPDF en utilisant la méthode addTTFfont (). Par exemple:
// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = TCPDF_FONTS::addTTFfont('/path-to-font/FreeSerifItalic.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);
pour de plus amples informations et des exemples, veuillez cocher la case page de documentation des polices TCPDF.
addTTFfont()!j'ai découvert un très bon outil en ligne. La seule chose que vous devez faire est de télécharger votre .TTF puis télécharger les fichiers et les copier dans le dossier / fonts.
http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf
la méthode addTTFfont n'est pas disponible sur la classe principale TCPDF donc suivre a fonctionné pour moi.
// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = TCPDF_FONTS::addTTFfont('pathto/arial.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);
espérons que cela aide!
Je ne sais rien sur tcpdf ou php, mais j'ai trouvé ceci:
http://www.tcpdf.org/examples/example_033.phps
apparemment, vous n'utilisez que le nom de la police, pas le nom du fichier.
Grève!
Ok, Que diriez-vous de cette page. Pour préparer une police à utiliser par TCPDF, vous devez exécuter le fichier à travers un utilitaire de ligne de commande et un script PHP.
$ ttf2ufm -a -F myfont.ttf
et alors:$ php -q makefont.php myfont.ttf myfont.ufm
ouMakeFont(string $fontfile, string $fmfile [, boolean $embedded [, $enc="cp1252" [, $patch=array()]]])
ttf2ufm est distribué avec TCPDF dans le répertoire TCPDF/fonts.
les lignes ci-dessous va générer 3 fichiers dans le dossier polices 1.rotisserifi56.php 2.rotisserifi56.ctg 3.rotisserifi56.rar
use this to generate the required php and other files
$fontname = $this->pdf->addTTFfont('D:/wamp/www/projectname/sites/all/modules/civicrm/packages/tcpdf/fonts/Rotis Serif Italic 56.ttf', 'TrueTypeUnicode', '', 32);
// use the font
$this->pdf->SetFont($fontname, '', 14, '', false);
Maintenant,
utilisez les polices comme ceci:
$this->pdf->AddFont('rotisserifi56', '', 'rotisserifi56.php');
$this->pdf->SetFont('rotisserifi56');
--espérons que cela aide certains :)
j'ai trouvé la méthode addTTFfont un peu délicate (ok, n'a probablement pas essayé très dur) et l'outil en ligne mentionné ci-dessus fonctionne pour FPDF mais manque le ctg.z fichier requis par TCPDF.
Ce http://fonts.snm-portal.com/ - génère les 3 fichiers (.php,.z et .ctg.z) pour TCPDF. Convertissez le TTF, téléchargez les trois fichiers dans votre dossier fonts et vous pouvez y aller.
première création .php,.AFM.,z http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf et déplacer tous les trois dans le même répertoire contenant .ttf fichier. puis Utiliser Ceci :
$pdf->AddFont(path-to/universe.ttf','',path-to/universe.php');
$pdf->SetFont(path-to/universe.ttf','',10);
la dernière version de TCPDF prend en charge les polices personnalisées.
la Documentation sur L'utilisation de polices personnalisées avec TCPDF peut être lue ici.
la meilleure façon que j'ai été essayé et a travaillé à 100%
mettez votre TTF
police dans le dossier fonts et ensuite utiliser cette constante K_PATH_FONTS + FONT NAME
$font1 = $this->pdf->addTTFfont(K_PATH_FONTS . 'arial.ttf', 'TrueTypeUnicode', '', 8);
$this->pdf->SetFont($font1, '', 15, '', false);
il n'y a aucun intérêt à utiliser addTTFfont() si vous n'avez pas le .ttf fichier.
Et toute la question est: si il y a PAS de ttf fichier, comment quelqu'un peut utiliser la fonction addTTFfont ()?
par exemple, il n'y a pas de fichier cid0cs dans font/ directory (TCPDF 6.0.20), seulement cid0cs.php, qui est ce n'est PAS un fichier de police.
je n'ai pas pu trouver addTTFFont() dans la dernière version de tcpdf.
Cependant, j'ai pu inclure un fichier TTF personnalisé par moi-même. Dans le dossier tcpdf se trouve un dossier nommé tools
qui incluent un fichier PHP appelé tcpdf_addfont.php
.
j'ai un lien symbolique à mon répertoire home (vous pouvez omettre cette étape) et l'exécuter comme ceci:
shell
./addfont.php -b -t TrueTypeUnicode -f 32 -i myfont.ttf
c'est ça, il va dump quelque chose de semblable à ce: ``
conversion des polices de caractères pour TCPDF: *** Dir de sortie défini à /Users/pascalraszyk/XXX/XXX/pdf/vendor / tecnick.com / tcpdf / fonts/ + + + OK: / Users/pascalraszyk/XXX/XXX/pdf / myfont.TTF ajouté en tant que myfont Processus complété avec succès! ``
Remarque: il y a plus d'exemples dans le tools
dossier pour différents types de polices.
J'ai utilisé composer pour vérifier tcpdf.
aussi longtemps que vous mettez vos fichiers de définition de police dans le tcpdf/fonts
dossier vous devriez être bon d'aller!
j'ai utilisé HTML2PDF qui utilise tcpdf sous le capot et ça a fonctionné comme un charme.
j'ai eu ce problème malgré tous les bons fichiers. J'ai dû changer les noms de fichiers en minuscules
Lorsqu'il n'était pas possible de convertir police GothamRounded façon standard, je cherchais un autre outil et seulement celui-ci http://fonts.snm-portal.com/ a fonctionné pour moi.