Я пытаюсь создать pdf, используя laravel 5 и https://github.com/elibyy/laravel-tcpdf
У меня есть форма 20 страниц, написанных в ларавельном лезвии, когда мой клиент заполняет форму и нажимает кнопку submit. Я хочу создать PDF-файл для него и сохранить его
я пытаюсь сделать это в моем контроллере
public function createPDF() { $pdf = Input::get('pdf',null); $company = Input::get('company',null); $branch = Input::get('branch',null); $sub_branch = Input::get('sub_branch',null); $form_type = Input::get('form_type',null); $form_name = Input::get('form_name',null); $form_heb_name = Input::get('form_heb_name',null); $sig_path=FormsController::getSignature_file(); $data=compact('company','branch','sub_branch','form_type','form_name','form_heb_name','sig_path'); Input::flash(); if ($pdf) { $pdf = new TCPDF(); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(false); $pdf->AddPage(); $pdf->writeHTML(view('forms.'.$company.'.'.$branch.'.'.$sub_branch.'.'.$form_type.'.'.$form_name, $data)->render()); $filename = storage_path().'/forms_pdf/10006/26/4718326/'.$form_name.'.pdf'; $pdf->output($filename, 'I'); return redirect('forms'); } return view('forms.'.$company.'.'.$branch.'.'.$sub_branch.'.'.$form_type.'.'.$form_name , $data); }
bat его не работает, он создает 2-страничную страницу со всеми полями друг на друга
как это исправить?
Кроме того, я хочу сохранить PDF так, чтобы его нельзя было отредактировать, как я могу это сделать?
Благодарю.
Я постараюсь дать вам пошаговый ответ (проверенный на laravel 5.1):
Прежде чем использовать его, убедитесь, что вы правильно установили поставщика услуг TCPDF:
Установка поставщика услуг TCPDF
В composer.json добавьте этот пакет:
"require": { "elibyy/laravel-tcpdf": "0.*" }
Запустить обновление композитора
в config / app.php добавьте этого поставщика услуг
'providers' => [ //.. Elibyy\TCPDF\ServiceProvider::class, ]
Запустите php artisan vendor: publish , который будет генерировать config / laravel-tcpdf.php в ваших файлах
Создать pdf-файл в вашем контроллере
public function createPDF() { [...] //get default settings from config/laravel-tcpdf.php $pdf_settings = \Config::get('laravel-tcpdf'); $pdf = new \Elibyy\TCPDF\TCPdf($pdf_settings['page_orientation'], $pdf_settings['page_units'], $pdf_settings['page_format'], true, 'UTF-8', false); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(false); $pdf->AddPage(); $pdf->writeHTML(view('forms.'.$company.'.'.$branch.'.'.$sub_branch.'.'.$form_type.'.'.$form_name, $data)->render()); $filename = storage_path().'/forms_pdf/10006/26/4718326/'.$form_name.'.pdf'; $pdf->output($filename, 'I'); return redirect('forms'); }