использовать шрифт в документе, сгенерированном mPDF
Я хотел бы, чтобы вы помогли мне с этой проблемой, я имею дело в первый раз с mPDF, который я думаю, что это здорово, но я хочу отобразить отчет с тем же типом шрифта, что и мой веб, который в своей документации объясняет, как этого достичь, но он все еще не работает для меня. То, что я делал до сих пор:
- добавьте url-адрес, чтобы открыть Sans из google в мой документ, который будет
сгенерированный после него,
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
. -
затем я добавляю файл таблицы стилей который содержит использование шрифта
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/publicidad/css/reporte.css" type="text/css">
Внутрь журналистам в среду представител.css, который я уже добавил, У меня есть определение для использования шрифта "Open Sans"тело { шрифт-семейство: 'Open Sans', sans-Serif; } который отображает шрифт, как ожидалось.
- я генерирую pdf с mPDF, который работает хорошо, но когда я хочу
отображение открытых Sans в качестве документации стоит, он не показывает нужный шрифт, я загрузил файл ttfs "Open Sans" из http://www.fontsquirrel.com/fonts/open-sans, и добавил внутри папки ttfonts каталога mPDF, как говорится в его документации.
После этого я следую этой четкой документации http://mpdf1.com/manual/index.php?tid=453, но до сих пор я не получаю желаемый шрифт, отображаемый в моем PDF-документе, чего я не делал до сих пор, это часть, которая говорит "4. Чтобы использовать шрифт с определенными языками, необходимо также изменить конфигурацию файл (config_cp.php); давайте представим, что Frutiger содержит полный набор символов, необходимых для тайского языка:", но я не думаю, что это проблема, потому что я использую конфигурацию по умолчанию, которую я положил.
function pdf_create($html, $filename, $stream = TRUE) {
require_once(APPPATH . 'helpers/mpdf/mpdf.php');
$mpdf = new mPDF();
$mpdf->SetAutoFont();
$mpdf->WriteHTML($html);
if ($stream)
{
$mpdf->Output($filename . '.pdf', 'D');
}
else
{
$mpdf->Output('./uploads/temp/' . $filename . '.pdf', 'F');
return './uploads/temp/' . $filename . '.pdf';
}
}
и в моем контроллере я делаю это.
$html = $this->load->view('publicidad/reporte_x_curso', $data, true);
$this->load->helper('mpdf');
pdf_create($html, 'Reporte_por_cursos', true);
(вышеуказанное не распознается редактором stackverflow)
и, наконец, то, что я сделал до сих пор, что должен делать все, что я хочу, следуя документации есть:
$this->fontdata = array(
"'Open Sans'" => array(
'R' => 'OpenSans-Regular.ttf'
)
PD: я поставил одинарные кавычки, потому что я добавлял таким образом в свой html-документ, но я также пытался без них, без успеха. Надеюсь, вы сможете мне помочь, заранее спасибо.
3 ответов
Примечания:
во-первых, не используйте mpdf1.com веб-сайт, он закрыт. Использовать https://github.com/mpdf/mpdf. Существуют различные коды для версии 6 и 7 )
пример (v7):
(источник)
1) Загрузите MyFont.ttf
на /mpdf/ttfonts
2) в /mpdf/config_fonts.php
внутри $this->fontdata
массив, добавить ваш:
"my_custom_fonttt" => array(
'R' => 'MyFont.ttf', //Regular- REQUIRED
'I' => "MyFont-Oblique.ttf", //Italic - OPTIONAL
'B' => "MyFont-Bold.ttf", //Bold - OPTIONAL
),
3) затем, где бы вы ни выполняли свой пользовательский скрипт, используйте my_custom_fonttt
в css:
<?php
$mpdf=new mPDF();
$texttt= '
<html><head><style>
body {font-family: "my_custom_fonttt";}
</style></head>
<body>My SAMPLE TEXTTTTT </body>
</html>';
$mpdf->WriteHTML("$texttt");
$mpdf->Output(dirname(__FILE__).'/new_created_file.pdf','F');
?>
Я решил свою проблему, в определении шрифта не должно быть пробелов, поэтому я заменил объявление шрифта css на "opensans" и
$this->fontdata = array(
"opensans" => array(
'R' => 'OpenSans-Regular.ttf'
)
имейте в виду, что тип шрифта ('OpenSans-Regular.ttf') должен находиться внутри папки ttfonts папки mpdf
Я столкнулся с теми же проблемами: Убедитесь, что у вас нет пробелов при определении имени шрифта, держите его в нижнем регистре.
Это сработало для меня