Użycie biblioteki mPDF

0

Cześć, w czym jest problem? Dlaczego nie znajduje tej klasy?

Fatal error: Uncaught Error: Class "Mpdf\Mpdf" not found in C:\xampp\htdocs\test\index.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\test\index.php on line 5

Kod:

<?php
// Require composer autoload
require_once __DIR__ . '/vendor/autoload.php';
// Create an instance of the class:
$mpdf = new Mpdf\Mpdf();

// Write some HTML code:
$mpdf->WriteHTML('Hello World');

// Output a PDF file directly to the browser
$mpdf->Output();
0

Czy masz katalog o nazwie vendor w środku którego jest skrypt autoload.php?
U mnie tak wygląda upload bibliotetki:

require_once("vendor/autoload.php"); 
0

Tak, posiadam. Wrzucam w załączniku screen jak wygląda struktura. Dziwne to trochę, bo to przykład z githubavendor.png

0

Która to za wersja mPDF i PHP?

0

mPDF w wersji 6.1, PHP w wersji 8.0.0

0

Spróbuj tak:

 $mpdf = new \mPDF();
0

Wyrzuca błąd:

Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\xampp\htdocs\test\vendor\mpdf\mpdf\mpdf.php on line 2349
0

Jeżeli masz PHP8, to może być to kwestia kompatybilności. Ja bym pobrał najnowszą wersję biblioteki mPDF, która wspiera PHP8.
Układ katalogów mam taki sam.

Sam używam mPDF 8.0.9.0 na PHP 7.4 i działa.

0

composer.png

Takie coś mi się wyświetla w composer. Jak to zaktualizować?

0

Ja to ręcznie robiłem. Czyli pobrałem bibliotekę, a potem wrzuciłem do katalogu.
Może spróbuj z innego repo? Mnie polecano kiedyś ten link: https://packagist.org/packages/mpdf/mpdf

0

Ale jak to pobrać ręcznie? Tam jest tylko przez composer.

0

Nic to nie daje to co tam podpowiadają. Wrzuciłbyś na jakiś hosting swoją wersję mPDFa i tu podrzucił link?

2
dawid4157 napisał(a):

Wyrzuca błąd:

Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\xampp\htdocs\test\vendor\mpdf\mpdf\mpdf.php on line 2349

Ten błąd oznacza, ni mniej ni więcej to że używasz biblioteki napisanej pod starszą wersję PHP (prawdopodobnie 7.4), a uruchamiasz ją na PHP 8.0. Masz z tego dwa wyjścia: albo zaktualizuj bibliotekę do nowszej wersji, albo uruchamiają ją na starszym PHP.

Na GitHub'ie biblioteki (https://github.com/mpdf/mpdf) jest napisane:

  • mPDF >=7.0 is supported on PHP ^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0
  • PHP 7.3 is supported since mPDF v7.1.7
  • PHP 7.4 is supported since mPDF v8.0.4
  • PHP 8.0 is supported since mPDF v8.0.10
  • PHP 8.1 is supported as of mPDF v8.0.13

Czyli jeśli chcesz uruchomić bibliotekę na PHP 8.0, to musisz zainstalować wersję mPDF od wersji 8.0.10 w górę.

dawid4157 napisał(a):

mPDF w wersji 6.1, PHP w wersji 8.0.0

Wychodzi na to że wersja którą masz, 6.1 już jest dawno nie wspierana, i powinieneś użyć nowszej wersji.

Rozwiązanie:

Podczas instalacji, composer rzuca Ci również warning:

Cannot use mpdf/mpdf's latest version v8.1.2. as it requires ext-gd * which is missing from your platform

Widać to na screenie. To znaczy że composer chciał zainstalować najnowszą, wspieraną wersję, ale nie mógł, ponieważ Twój php nie ma extensiona gd. Extensiony w PHP dość łatwo się włącza, zlokalizuj swój plik php.ini, (używajac np komendy php --ini), edytuj go i odkomentuj w nim extension gd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1