Сгенерировать HTML в PDF и загрузить сгенерированный PDF в базу данных с помощью Laravel? - PullRequest
0 голосов
/ 23 июня 2018

Я делаю онлайн-приложение для экзамена.Где студенты будут входить в систему, и там будет пакет экзамена.Теперь у пакетов уже есть вопросы, хранящиеся в базе данных, я уже преобразовал вопросы в формат HTML в PDF, и он доступен для загрузки.Вопрос в том, как я могу получить сгенерированный PDF, который также будет загружен в базу данных?Поскольку вопросы для каждого пользователя будут расположены в случайном порядке, и я хотел бы, чтобы каждый пользователь продолжал предыдущий экзаменационный пакет после входа в систему, чтобы он не создавался заново.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Поскольку у вас уже есть файл PDF, вместо загрузки его в базу данных (плохой подход) вы можете сделать это:

  • (ок) Создание и загрузка PDF по запросу. Каждый раз, когда ученик нажимает кнопку «Загрузить», вы генерируете и загружаете файл PDF.
  • (хорошо) Создавать PDF только в первый раз. Сохраните сгенерированное имя в базе данных. При дальнейших щелчках просто получите имя файла и добавьте его в папку вашего PDF. Например: asset('exams/'.$pdf_filename.'.pdf'); для отображения / загрузки PDF.
0 голосов
/ 23 июня 2018

Вам не нужно хранить его в базе данных, если у вас уже есть html-шаблон данных, которые будут включены в pdf

Шаг 1) Скачать установить пакет composer require barryvdh/laravel-dompdf

Шаг 2) После установки pdf пакета для laravel, мы должны его настроить.просто следую за мелочами.откройте ваш config/app.php файл и установите следующее значение для массива провайдеров и массива псевдонимов

'providers' => [
    ....
    Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
    ....
    'PDF' => Barryvdh\DomPDF\Facade::class,
],

Затем выполните php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

Шаг 3) Создайте маршрут

Route::get('generate-pdf', 'PdfGenerateController@pdfview')->name('generate-pdf');

Шаг 4) Добавьте логику для загрузки представления в формате pdf:

$pdf = App::make('dompdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...