#php #wordpress #dompdf
#php #wordpress #dompdf
Вопрос:
Привет, удивительное сообщество slack.
Я использую dompdf 0.8.0 для управления некоторой магией pdf на моем сайте Woocommerce. Я создал функцию, которая отправляет счет в формате PDF по щелчку мыши в браузер, и это работает очень хорошо.
Моя следующая задача — прикрепить счет-фактуру в формате PDF к электронному письму с заказом, и я в значительной степени справился с этим. Однако созданный файл не содержит никакого содержимого.
Мои права доступа к файлам / папкам установлены правильно 755/644, и даже установка папки 777 в корневом каталоге doc не решила проблему с разрешениями.
Я нашел несколько потоков, но, похоже, ничто не соответствует или не решает мою проблему.
Вот мой код:
require_once 'dompdf/autoload.inc.php';
$dompdf = new DompdfDompdf();
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->load_html($content);
$dompdf->render();
$uploadspath = wp_upload_dir();
$upload = file_put_contents($uploadspath['basedir'].'/'.$filename, $content);
Путь, в который я пытаюсь записать, выглядит следующим образом (выгружается из $uploadspath[‘basedir’].’/’.$filename)
/var/www/designcuts/wp-content/uploads/1524762.pdf
Комментарии:
1. Что
$output
должно быть? Это то, что вы записываете в файл, но вы не показали нам, где вы бы заполнили эту переменную в первую очередь.2. Ах, вы помогли мне понять, что я полный идиот. Спасибо. Однако теперь файл записывается, и теперь файл имеет размер, я получаю следующую ошибку. Тип файла HTML document (текст / html) не поддерживается
3. Когда я открываю файл в текстовом редакторе, все, что я получаю, это HTML. pdf-файл не был отрисован.
4. Вам нужно перехватить то, что
render
метод в противном случае выводил бы непосредственно в браузер. Проверьте github.com/dompdf/dompdf/wiki/Usage#php-example-with-ob_start для примера, как это сделать, используя буферизацию вывода PHP.