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.
надеюсь, это поможет
            