Ошибка класса «Mpdf\Mpdf» не найдена в Phpspreadsheet

Я пытаюсь преобразовать файл excel непосредственно в PDF с помощью PHPSpreadsheet. но получил ошибку "Класс 'Mpdf\Mpdf' не найден", вот мой код:

<?php 
  require 'vendor/autoload.php';
  use PhpOffice\PhpSpreadsheet\IOFactory;
  use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
  use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
  use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;

  $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
  $reader->setReadDataOnly(true);
  $spreadsheet = $reader->load("excel.xlsx");


  // when I use this MPDF class, I'm getting an error Class \Mpdf\Mpdf not found

  $writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
  $writer->save("excel.pdf");

Пожалуйста, помогите с приведенным выше кодом.

Спасибо


person Arun Kumar    schedule 20.03.2018    source источник


Ответы (1)


Из документации phpspreadsheet :

Теперь вы должны самостоятельно установить библиотеку рендеринга PDF; но PhpSpreadsheet будет работать с рядом различных библиотек.

Ошибка возникает из-за того, что не установлена ​​библиотека рендеринга, которую вы хотите использовать (в данном случае mPDF). Просто добавьте mpdf/mpdf в свои зависимости композитора.

person BlobbyBob    schedule 20.03.2018
comment
Спасибо за ответ @BlobbyBob. Я установил PHPSpreadsheet с композитором, и вся библиотека PDF также была установлена ​​​​с помощью phpspreadsheet. - person Arun Kumar; 20.03.2018
comment
По-видимому, он неправильно установлен, потому что \Mpdf\Mpdf не может быть найден. Попробуйте добавить его вручную и запустите composer update - person BlobbyBob; 20.03.2018
comment
@ArunKumar Вы не должны помещать его вручную в какой-либо каталог. Просто запустите composer require mpdf/mpdf и все должно заработать - person BlobbyBob; 20.03.2018
comment
@BlobbBob Мой файл excel успешно преобразован в pdf, но я получаю предупреждение: unlink (C:\Windows\Temp\ib9CEB.tmp): разрешение отклонено в C:\wamp\www\api\vendor\mpdf\mpdf\src\ Ошибка Cache.php в строке 69. - person Arun Kumar; 20.03.2018