manoj11patel / easy-pdf-for-laravel
Laravel 的 TCPDF 库,支持所有最新版本
dev-main
2021-08-01 16:09 UTC
Requires
- illuminate/support: ^6.0|^7.0|^8.0
- tecnickcom/tcpdf: 6.2.*|6.3.*|6.4.*|dev-main
This package is not auto-updated.
Last update: 2024-09-24 07:42:32 UTC
README
一个简单的 Laravel 服务提供者,包含一些基本配置以包含 TCPDF 库
TCPDF 并非真正支持 PHP 7,但有计划支持它,请查看 这里。
安装
Laravel TCPDF 服务提供者可以通过 composer 安装,在项目的 composer.json
中要求 manoj11patel/easy-pdf-for-laravel
包。(安装可能需要一段时间,因为该包需要 TCPDF。遗憾的是其 .git 文件夹非常大)
composer require manoj11patel/easy-pdf-for-laravel
或者
Laravel 5.5+ 将使用自动发现功能。
{ "require": { "manoj11patel/easy-pdf-for-laravel": "^8.0" } }
如果您不使用自动发现,您需要在 config/app.php
中包含服务提供者/外观。
'providers' => [ //... Manoj\TCPDF\ServiceProvider::class, ] //... 'aliases' => [ //... 'PDF' => Manoj\TCPDF\Facades\TCPDF::class ]
(请注意:TCPDF 不能用作别名)
对于 lumen,您应该添加以下行
$app->register(Manoj\TCPDF\ServiceProvider::class); class_alias(Manoj\TCPDF\Facades\TCPDF::class, 'PDF');
就这样!您可以开始了。
以下是一个简单的示例
use PDF; // at the top of the file PDF::SetTitle('Hello World'); PDF::AddPage(); PDF::Write(0, 'Hello World'); PDF::Output('hello_world.pdf');
生成多个 PDF 的另一个示例
use PDF; // at the top of the file for ($i = 0; $i < 5; $i++) { PDF::SetTitle('Hello World'.$i); PDF::AddPage(); PDF::Write(0, 'Hello World'.$i); PDF::Output(public_path('hello_world' . $i . '.pdf'), 'F'); PDF::reset(); }
有关所有可用函数的列表,请参阅 TCPDF 文档
配置
Laravel-TCPDF 随附一些基本配置。如果您想覆盖默认值,可以发布配置,如下所示
php artisan vendor:publish --provider="Manoj\TCPDF\ServiceProvider"
现在访问 config/tcpdf.php
以进行自定义。
- use_original_header 是用来使用 TCPDF 的原始
Header()
。- 请注意,
PDF::setHeaderCallback(function($pdf){})
会覆盖此设置。
- 请注意,
- use_original_footer 是用来使用 TCPDF 的原始
Footer()
。- 请注意,
PDF::setFooterCallback(function($pdf){})
会覆盖此设置。
- 请注意,
- use_fpdi 是这样,我们的内部助手将扩展
TcpdfFpdi
而不是TCPDF
。- 请注意,fpdi 不是我的项目的依赖项,所以您需要遵循他们的安装说明 这里
头部/尾部助手
我收到了一个请求这个功能的 pull-request,所以我添加了这个功能
现在您可以使用 PDF::setHeaderCallback(function($pdf){})
或 PDF::setFooterCallback(function($pdf){})