Laravel, просмотр PDF с использованием DomPDF

-1

Сценарий: в настоящее время я пытаюсь преобразовать представление Laravel в pdf, чтобы пользователь мог иметь pdf-версию своей страницы профиля.

Info: Я использую кассир Laravel, который, по-видимому, поставляется с dompdf для создания счетов-фактур. Я обнаружил это при попытке сделать

композитору требуется dompdf/dompdf

Сообщение об ошибке было

laravel/cashier v6.0.18 требует dompdf/dompdf ^ 0.6.1 → выполнимый dompdf/dompdf [v0.6.1, v0.6.2], но это противоречит вашим требованиям или минимальной стабильности

Также обнаружено из документации кассира Laravel: https://laravel.com/docs/5.4/billing#generating-invoice-pdfs

Поэтому я использую dompdf v0.6.

Проблема: я пытаюсь использовать dompdf как обычно, так как я думаю, что у меня есть настройка от кассира Laravel. Но я получаю много ошибок в контроллере при попытке использовать любую функциональность из dompdf, если попытаюсь:

use Dompdf;

// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');

// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$dompdf->stream();

Я получаю сообщение о том, что класс Dompdf не определен. поэтому, если я попытаюсь использовать функции кассира Laravel для их "конвертации PDF-документов для счетов-фактур" следующим образом:

$pdf = downloadInvoice::loadView('dashboard.index', ['user' => $user]);
    return $pdf->download('profile.pdf');

Затем я получаю сообщение об ошибке

Класс 'App\Http\Controllers\downloadInvoice' не найден

Я много раз пробовал Googling, но на самом деле я действительно потерялся, может ли кто-нибудь быть таким добрым, чтобы указать на потерянного разработчика в правильном направлении? :) Спасибо за ваше время в превзошли!

EDIT: Я пробовал:

$pdf = PDF::loadView('dashboard.index', ['user' => $user]); return $pdf->download('profile.pdf');

но получить

Класс 'App\Http\Controllers\PDF' не найден

Похоже, что dompdf даже не реконструирован. Может быть, я могу посмотреть на это и посмотреть, работает ли эта штука?

  • 0
    У меня нет файла с именем «downloadInvoice.php». У меня есть блейд-файл с именем index.blade.php, который я пытаюсь преобразовать в PDF. Этот файл находится в каталоге resources / views / dashboard /. Спасибо за исправление в команде !! :). Извините не уверен, что то, что я предоставил, помогает любому.
  • 0
    Замените ссылочную строку класса на use Dompdf\Dompdf;
Показать ещё 1 комментарий
Теги:
pdf

2 ответа

0

На основе документации быстрого запуска код должен выглядеть так:

use Dompdf\Dompdf;  <-- May this is the mistake

// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');

// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$dompdf->stream();

Дайте мне знать, если все же это не сработает для вас.

  • 0
    В соответствии с инструкциями я поставил «использовать Dompdf \ Dompdf;» рядом с другими моими операциями импорта или использования в моем контроллере, затем замените вещи в моей публичной функции index () на // instantiate и используйте класс dompdf $ dompdf = new Dompdf (); $ dompdf-> loadHtml ('Привет, мир'); // (Необязательно) Установите размер и ориентацию бумаги $ dompdf-> setPaper ('A4', 'landscape'); // Визуализировать HTML как PDF $ dompdf-> render (); // Вывод сгенерированного PDF в браузер $ dompdf-> stream (); и получить класс 'Dompdf \ Dompdf' не найден. Затем я попытался использовать Dompdf; вместо этого и говорится, что существует несколько определений, что я считаю хорошим.
  • 0
    Тогда я получаю класс 'Dompdf' не найден. Так странно. Спасибо за ваши отзывы, ребята, я думаю, что мы можем добраться до сути с помощью всякой помощи здесь :)
Показать ещё 5 комментариев
0

Класс 'App\Http\Controllers\downloadInvoice' не найден

Похоже, что ваш downloadInvoice.php находится в другой папке и/или использует другое пространство имен, поэтому вы просто пропустите правильное use (если вы используете PHPStorm, просто поставьте курсор рядом с downloadInvoice:: и нажмите CTRL+ENTER.

В некоторых случаях вам также может понадобиться сделать composer dumpautoload

  • 0
    Я сделал композитор dumpautoload. Кажется, не исправить текущие сообщения об ошибках. Я использую phpstorm, поэтому я пошел и сделал Ctrl + Enter на downloadInvoice, но он ничего не делает, он по-прежнему выделяет его, говоря неопределенный класс, и при нажатии на лампочку для импорта класса, он только дает мне возможность создать класс и ничего не импортировать. Я делаю что-то неправильно?
  • 0
    Вместо этого я попытался сделать это из другого поста stackoverflow '' $ pdf = pdf :: loadView ('dashboard.index', ['user' => $ user]); return $ pdf-> download ('profile.pdf'); "как обычная функция dompdf, но кажется, что dompdf даже не распознается, а выглядит установленным. Любые предложения о том, что я могу сделать, чтобы разобраться с этим?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню