本文概述
- 要求
- 实现
- 结合使用TCPDF和别名
- 使用无别名的TCPDF
- 推荐建议
TCPDF现在是世界上最活跃的开源项目之一, 每天有数百万的用户使用, 并包含在成千上万的CMS和Web应用程序中。
TCPDF不需要任何其他内容作为其代码库。它不使用任何可执行文件, 并且它是许多开发人员的首选, 因为它易于使用集成。
要求要在Laravel中使用TCPDF, 我们将在项目中包含tcpdf-laravel软件包。你可以将包添加到项目中, 在composer.json文件中添加以下行:
{"require": {"elibyy/tcpdf-laravel": "5.2.*"}}
或直接在控制台中使用composer:
composer require elibyy/tcpdf-laravel
由于TCPDF库很大, 因此安装需要一段时间。
实现现在, 该库已包含在你的项目中, 你需要在服务提供商中启用它。
转到你的app.php文件(yourapp / config / app.php)并添加Laravel TCPDF服务提供商:
'providers' =>
[//...Elibyy\TCPDF\ServiceProvider::class, ]
现在, 你将可以在项目中使用TCPDF。
结合使用TCPDF和别名你可以为TCPDF定义一个别名(无论你想要什么), 以防止直接声明新的类元素, 并使用TCPDF :: Method语法而不进行实例化。
转到你的app.php文件(yourapp / config / app.php)并添加该类的别名:
'aliases' =>
[//...'PDF' =>
Elibyy\TCPDF\Facades\TCPDF::class]
现在, TCPDF的别名为PDF, 你可以使用以下命令在控制器中生成PDF:
<
?phpnamespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use PDF;
class DefaultController extends Controller{public function index(){$html = '<
h1>
Hello World<
/h1>
';
PDF::SetTitle('Hello World');
PDF::AddPage();
PDF::writeHTML($html, true, false, true, false, '');
PDF::Output('hello_world.pdf');
}}
现在, 你可以使用TCPDF从html生成出色的PDF。
注意:由于在使用别名时不会创建TCPDF类的新实例, 因此, 如果要创建多个PDF, 则需要使用reset方法来创建一个新的PDF。
要创建多个PDF, 请使用PDF :: reset方法在新的PDF实例上工作:
<
?phpnamespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use PDF;
class DefaultController extends Controller{public function index(){for ($i = 0;
$i <
5;
$i++) {$html = '<
h1>
Hello World '.$i.'<
/h1>
';
PDF::SetTitle('Hello World'.$i);
PDF::AddPage();
PDF::Write(0, 'Hello World'.$i);
// Write the file instead of throw it in the browserPDF::Output(public_path('hello_world' . $i . '.pdf'), 'F');
PDF::reset();
}}}
使用无别名的TCPDF没有别名, 我们将需要声明TCPDF类的实例, 只需在控制器顶部的Elibyy \ TCPDF \ Facades \ TCPDF类中添加一个use语句即可。
<
?phpnamespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Elibyy\TCPDF\Facades\TCPDF;
class DefaultController extends Controller{public function index(){$html = '<
h1>
Hello world<
/h1>
';
$pdf = new TCPDF();
$pdf::SetTitle('Hello World');
$pdf::AddPage();
$pdf::writeHTML($html, true, false, true, false, '');
$pdf::Output('hello_world.pdf');
}}
推荐建议在视图中处理HTML内容而不是在控制器中手动操作是一种好习惯。
你可以在模板中以html格式绘制PDF内容, 检索视图生成的html并写入PDF:
<
?phpnamespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Elibyy\TCPDF\Facades\TCPDF;
class DefaultController extends Controller{public function index(){$view = \View::make('myview_name');
$html = $view->
render();
$pdf = new TCPDF();
$pdf::SetTitle('Hello World');
$pdf::AddPage();
$pdf::writeHTML($html, true, false, true, false, '');
$pdf::Output('hello_world.pdf');
}}
【如何在Laravel中使用TCPDF从HTML生成PDF】玩得开心 !
推荐阅读
- 如何使用FontAwesome在图标上使用数字
- Canvas.toBlob(Google Chrome 50和Firefox中Canvas的新功能)
- 修复Laravel 5.4中的”指定密钥太长错误”异常
- React国际化(i18n)入门
- 如何在React JSX中发表评论
- 处理XP下无法访问Windows7文件
- 处理Windows xp无法安装字体
- 教你进入WindowsXP系统后假死机的处理办法
- 分享运用Windows XP组策略局限访问电脑磁盘的最好办法