Użycie biblioteki mPDF

Użycie biblioteki mPDF
dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

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

Kopiuj
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:

Kopiuj
<?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();
K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 791
0

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

Kopiuj
require_once("vendor/autoload.php"); 
dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

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

K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 791
0

Która to za wersja mPDF i PHP?

dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

mPDF w wersji 6.1, PHP w wersji 8.0.0

K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 791
0

Spróbuj tak:

Kopiuj
 $mpdf = new \mPDF();
dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

Wyrzuca błąd:

Kopiuj
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
K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 791
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.

dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

composer.png

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

K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 791
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

dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

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

K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 791
dawid4157
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 220
0

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

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
2
dawid4157 napisał(a):

Wyrzuca błąd:

Kopiuj
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:

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.