1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > larvel html转pdf文件 如何在Laravel中使用TCPDF从HTML生成PDF

larvel html转pdf文件 如何在Laravel中使用TCPDF从HTML生成PDF

时间:2020-02-24 20:24:39

相关推荐

larvel html转pdf文件 如何在Laravel中使用TCPDF从HTML生成PDF

本文概述

在laravel, DOMPDF, Snappy等中, 有两种生成PDF的解决方案。在这种情况下, 我们将教你如何使用TCPDF创建PDF。

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:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use PDF;

class DefaultController extends Controller

{

public function index()

{

$html = '

Hello World

';

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实例上工作:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use PDF;

class DefaultController extends Controller

{

public function index()

{

for ($i = 0; $i < 5; $i++) {

$html = '

Hello World '.$i.'

';

PDF::SetTitle('Hello World'.$i);

PDF::AddPage();

PDF::Write(0, 'Hello World'.$i);

// Write the file instead of throw it in the browser

PDF::Output(public_path('hello_world' . $i . '.pdf'), 'F');

PDF::reset();

}

}

}

使用无别名的TCPDF

没有别名, 我们将需要声明TCPDF类的实例, 只需在控制器顶部的Elibyy \ TCPDF \ Facades \ TCPDF类中添加一个use语句即可。

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Elibyy\TCPDF\Facades\TCPDF;

class DefaultController extends Controller

{

public function index()

{

$html = '

Hello world

';

$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:

namespace 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');

}

}

玩得开心 !

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。