TCPDF, "не удалось включить файл определения шрифта" с шрифтами OpenType
Я веб-программист без глубокого знания шрифтов и изо всех сил пытаюсь получить TCPDF, чтобы включить наш пользовательский шрифт OpenType. Мы купили файлы шрифтов OpenType (.oft), которые не защищены никакими DRM.
много вопросов, касающихся этого сообщения об ошибке в конечном итоге получить тот же совет. Я установил правильные разрешения для файлов для папок, используемых TCPDF (755), и у меня нет проблем с использованием addTTFfont()
в том числе .TTF TrueType шрифты, как Итак:
$pdf->addTTFfont('/path-to-font/DejaVuSans.ttf', 'TrueTypeUnicode', '', 32);
поэтому я составил следующий код, чтобы включить наш тип OpenFont. The addTTFfont()
документация, похоже, указывает на поддержку параметров OpenTypeUnicode и OpenType.
$pdf->addTTFfont('/path-to-font/customfont.otf', 'OpenTypeUnicode', '', 96);
что приводит к:
TCPDF ERROR: Could not include font definition file:
мы используем TCPDF v6.0.020 и я читал TCPDF шрифты страница информации пока не повезло. Я заметил, что TCPDF также имеет
3 ответов
вы уверены, что вы получаете эту ошибку при вызове addTTFfont()
? Причина, по которой я спрашиваю, заключается в том, что я проверил код TCPDF (только что сделал глобальный поиск по "не удалось включить файл определения шрифта"), и это сообщение появляется только в addFont()
метод.
эти два метода могут быть немного запутанными, но я написал себе несколько заметок несколько месяцев назад, которые я частично воспроизведу ниже в надежде, что это поможет вам как-то:
addTTFfont()
- в основной функцией этого метода является преобразование шрифта из TTF (или OTF) в "сырую" версию, которая нужна TCPDF. Теоретически, эту функцию можно использовать в качестве основного метода добавления шрифтов в документ. Сначала он проверит папку шрифтов tcpdf, и если преобразованных файлов там нет, он продолжит преобразование. Это всего лишь немного больше накладных расходов, но все же не мой предпочтительный метод добавления шрифтов в файлы, так как вам нужно знать, какой стиль шрифта вы преобразование для процесса, чтобы даже работать успешно. ИМО, лучше использовать этот метод для предварительного преобразования любых шрифтов, которые вы планируете использовать, и просто использоватьaddFont()
чтобы добавить "сырые" версии в документ.AddFont()
- это добавляет " raw " (т. е. уже преобразованный) шрифт в документ, что означает, что он затем доступен для написания текста.SetFont()
- это устанавливает шрифт для следующего фрагмента текста, который вы писать.
поэтому я бы использовал addTTFfont()
чтобы предварительно преобразовать шрифт в "сырую" версию, используйте addFont()
и setFont()
в коде, который фактически создает PDF.
если addFont()
не удается с сообщением об ошибке выше, это означает, что он не может найти файл определения шрифта. Имейте в виду, что если вы называете addFont()
С набором стилей ("i", "b", " bi " и т. д.) Все, что он делает, это добавляет Это к имени файла (перед расширением).
самое главное, вы нужно убедиться, что ваш звонок на addTTFFont()
создает файлы шрифтов" raw " и сохраняет их в папку шрифтов. В каждом стиле должно быть три файла с расширениями .php
, .z
и .ctg.z
. Поэтому, если вы преобразовали шрифт с именем blah.ttf
вы будете в конечном итоге с blah.php
, blah.z
и blah.ctg.z
. Если вы конвертируете blah bold.ttf
, TCPDF выяснит, что это жирный шрифт и добавит "b" в конец имен файлов: blahb.php
, blahb.z
и blahb.ctg.z
.
надеюсь, здесь будет какой-то самородок, который поможет! Удачи!
TCPDF новый шрифт добавить и турецкий char проблема решена методом.
Использовать Конвертер Link:
- http://fonts.snm-portal.com
- загрузка файлов: 3.
- копировать TCPDF-master / шрифты
- использование: $ pdf - >SetFont ('roboto',", 14);
решить эту проблему с генерацией шрифтов.
убедитесь, что все пути правильные.
использовать ссылке
Не забудьте положить папку make_font
внутри папки html2pdf
помните о правильном пути: html2pdf.класс.РНР внутри папки make_font в индексе.в PHP
или
если у вас есть другая проблема-шрифт: не удалось включить файл определения шрифта:
это проблема правильного имени твой новый шрифт.
например, при создании pdf:
правильно: $html2pdf->addFont('lato i', '', 'latoi.php');
неправильно: $html2pdf->addFont('lato', '', 'latoi.php');
помните, что генерируются только 2 файла:
latoi.в PHP
latoi.z
вам не нужен файл ctg.
надеюсь, это поможет