Я понял это несмотря на то, что эта тема старше года. Это is можно использовать шрифт-awesome, хотя вы можете использовать до 256 символов для каждого подмножества. Я создал несколько карт символов, чтобы охватить все глифы как шрифта awesome версии 4.3.0. Вы просто используете карту, которая содержит символы, которые вы собираетесь использовать, или вы можете сделать три ее подмножества. Это не обязательно так же хорошо, как и другие решения, но fPDF по-прежнему намного быстрее, чем некоторые из альтернатив, потому что в нем отсутствуют многие более современные функции, такие как поддержка Unicode.
Во-первых, вам нужно использовать ttf2pt1 для создания файла AFM для шрифта.
ttf2pt1 -a fontawesome-webfont.ttf fontawesome-webfont
Я сделал три копии WebFont запустить через makefont.php и использовал каждую кодировку на соответствующем шрифте.
require "makefont.php";
makefont('fontawesome-webfont1.ttf','fa1.map');
makefont('fontawesome-webfont2.ttf','fa2.map');
makefont('fontawesome-webfont3.ttf','fa3.map');
Чтобы использовать их в FPDF, положить файлы, созданные в папке шрифтов и добавить их как это:
$pdf->AddFont('FA1','',fontawesome-webfont1.php);
$pdf->AddFont('FA2','',fontawesome-webfont2.php);
$pdf->AddFont('FA3','',fontawesome-webfont3.php);
Затем вы используете номер символа для отображения глифа для соответствующего подмножества шрифта -здорово. Три шрифт карты выше, содержит число символов для использования:
$pdf->SetFont('FA1','',14);
$WineGlass = chr(32);
$pdf->Cell(40,10,$WineGlass);
Я также сделал карту генератор символов, который будет показывать число символов ниже глифов.
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/pdf/fpdf.php');
// Establish/Get variables
function GETVAR($key, $default = null, $prefix = null, $suffix = null) {
return isset($_GET[$key]) ? $prefix . $_GET[$key] . $suffix : $prefix . $default . $suffix;
}
$font = GETVAR('font','fontawesome-webfont1','','.php');
$pdf = new FPDF('L','mm',array(268.33,415.3));
$pdf->AddPage();
$pdf->SetMargins(0,0,0);
$pdf->SetAutoPageBreak(0,0);
// add custom fonts
$pdf->AddFont('H','','helvetica.php');
$pdf->AddFont('FA','',$font);
$pdf->SetFillColor(200,200,200);
$pdf->SetXY(9,9);
for ($i = 32; $i <= 256; $i++) {
$y = $pdf->GetY();
$x = $pdf->GetX();
$pdf->SetX($x);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('FA','',14);
$pdf->Cell(12,12,chr($i),1,0,'C');
$pdf->SetXY($x,$y+12);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('H','',14);
$pdf->Cell(12,12,$i,1,0,'C',1);
$y = $pdf->GetY();
$x = $pdf->GetX();
$pdf->SetXY($x,$y-12);
if ($x > 400) {
$pdf->SetXY(9,$y+14);
}
if ($i == 328){
$pdf->AddPage();
}
}
$pdf->Output("charmap.pdf",'I');
Благодарим за информацию. Я не могу переключиться на mPdf в этот момент моего проекта. Mpdf кажется основанным на fpdf, это позволяет мне думать, что, вероятно, это возможно и в fpdf.Если я могу спросить, встраивание шрифтов mpdf работает как fpdf? вы должны создать файл afm из fontawesome? какой инструмент вы используете для создания afm? – Tropicalista
Поскольку mpdf 5, около 3 лет назад, больше не нужно преобразовывать файлы шрифтов в специальный формат. Я просто использую вариант TTF font-size. Надеюсь это поможет. – DroidOS
@DroidOS не могли бы вы объяснить, как использовать fontawesome в mpdf? Заранее спасибо – arilia