#php #mpdf
#php #mpdf
Вопрос:
Моя проблема
Я пытаюсь создать PDF-файл с помощью MPDF, но после того, как я установил mpdf, я получаю следующую ошибку о том, что он использует ограниченные фигурные скобки. Это связано с тем, что php не поддерживает фигурные скобки вместо фигурных скобок для указания индекса начиная с 8.0.0.
Что я пробовал
- измените фигурные скобки на скобки, но это полностью сломало библиотеку
Ошибки, которые я получаю после исправления устаревших фигурных скобок, следующие:
Warning: A non-numeric value encountered in C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php on line 30572
Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, string given in C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfclassesttfontsuni.php:613 Stack trace: #0 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfclassesttfontsuni.php(202): TTFontFile->extractInfo(false, true, 0) #1 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(3880): TTFontFile->getMetrics('C:/xampp/htdocs...', 'dejavuserifcond...', 0, false, true, 0) #2 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(4246): mPDF->AddFont('dejavuserifcond...', '') #3 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(13621): mPDF->SetFont('dejavuserifcond...') #4 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(1287): mPDF->SetDefaultFont('serif') #5 C:xampphtdocsbackendJaar2Project_webshopLibrarypdf_genereren.php(8): mPDF->__construct() #6 {main} thrown in C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfclassesttfontsuni.php on line 613
- дважды переустановил библиотеку, один раз переустановил composer
- Обновитесь до последней стабильной версии php (8.0.1)
<?php
ob_clean();
ob_start();
$rapport = ob_get_clean();
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->showImageErrors = true;
$mpdf->WriteHTML("<h1>Hello world..</h1>");
$mpdf->Output();
?>
Ответ №1:
Обновление: mPDF поддерживается на PHP 8 начиная с версии 8.0.10, нет необходимости использовать выделенную ветку.
Получилось, потому что php8 еще не поддерживается в mpdf. Мне пришлось установить пользовательскую версию mpdf, выполнив composer require mpdf/mpdf dev-php8-support
, и это устранило все проблемы.