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:

  1. http://fonts.snm-portal.com
  2. загрузка файлов: 3.
  3. копировать TCPDF-master / шрифты
  4. использование: $ pdf - >SetFont ('roboto',", 14);

enter image description here


решить эту проблему с генерацией шрифтов.

убедитесь, что все пути правильные.

использовать ссылке

Не забудьте положить папку 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.

надеюсь, это поможет