Преобразование DOCX в PDF с помощью PHPWord и DomPDF - PullRequest
0 голосов
/ 14 сентября 2018

Я использую только веб-сервер (поэтому нет доступа к серверу и нет таких вещей, как 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.php
      • autoloader.inc.php
      • PHPWord
      • производитель
        • autoload.php

Так что я либо испортил что-то в своей файловой структуре из-за загрузок вручную (что мне кажется наиболее вероятным), либо мой код неверен (также вероятно) ...

1 Ответ

0 голосов
/ 24 мая 2019

Сначала загрузите библиотеку dompdf, используя composer или git. Используйте realpath() или попробуйте использовать абсолютный путь для библиотеки рендеринга PDF.

...