Я использую только веб-сервер (поэтому нет доступа к серверу и нет таких вещей, как Composer или LibreOffice), и я хочу преобразовать шаблон DOCX в PDF. Я успешно обработал мой шаблон с помощью PHPWord (скачал с php-download.com, так как я не могу использовать composer), там все нормально, но когда я пытаюсь использовать DomPDF (также загруженный через phpdownload), чтобы преобразовать мой файл docx в PDF файл, PHP выбрасывает меня "Класс 'Dompdf \ Dompdf' не найден" ...
Я создал отдельный файл, чтобы просто преобразовать уже известный файл docx, чтобы исключить какие-либо проблемы с окружающей средой
Это мой код:
require_once("includes/PHPWord/vendor/autoload.php");
$inputfile = "files/temp/offerte_Hankie-Pankie.docx";
$path = realpath(realpath(__DIR__) . '/includes/dompdf');
echo "realpath: " . $path;
\PhpOffice\PhpWord\Settings::setPdfRendererPath($path);
\PhpOffice\PhpWord\Settings::setPdfRendererName(\PhpOffice\PhpWord\Settings::PDF_RENDERER_DOMPDF);
//Load temp file
$phpWord = \PhpOffice\PhpWord\IOFactory::load($inputfile);
//Save it
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF');
$xmlWriter->save('result.pdf');
Используя echo, я подтвердил, что папка установлена правильно: "/home/myusername/domains/mydomain.nl/public_html/projects/pdftemplate/includes/dompdf"
Так что я попытался разобрать подпапки "src" или "lib" безуспешно, я попытался разобрать фактический файл автозагрузчика "autoload.inc.php" и тоже не работал. Я перепробовал все вышеперечисленные пути с и без окончания "/" (просто чтобы быть уверенным), но класс по-прежнему не найден ... Хотя я использую точные копии кода, который (предположительно) работает в Интернете.
Я пытался найти его в документации PHPWord, которая не давала мне никаких решений. Я также пытался исключить PHPWord и просто использовать DomPDF, но поскольку DomPDF принимает только html в качестве входных данных, и я не знаю, как (и не хотел тратить еще час на это) для преобразования docx в HTML, это тоже был тупик .
Для справки, вот моя файловая структура:
- Работа реж.
- CodeIsInThisFile.php
- включает в себя
- DOMPDF
- Lib
- ЦСИ
- autoloader.inc.php
- PHPWord
- производитель
Так что я либо испортил что-то в своей файловой структуре из-за загрузок вручную (что мне кажется наиболее вероятным), либо мой код неверен (также вероятно) ...