如何使用 blade 视图和 tcpdf laravel 5 生成 pdf?
how to generate pdf using blade view with tcpdf laravel 5?
我正在尝试使用 laravel 5 和 https://github.com/elibyy/laravel-tcpdf
创建 pdf
我有一个 20 页的表格 laravel blade 当我的客户填写表格并单击提交时我想为他生成 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 页面,所有字段都在彼此之上
如何解决?
另外,我想把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');
}
我正在尝试使用 laravel 5 和 https://github.com/elibyy/laravel-tcpdf
创建 pdf我有一个 20 页的表格 laravel blade 当我的客户填写表格并单击提交时我想为他生成 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 页面,所有字段都在彼此之上
如何解决?
另外,我想把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');
}