m3skalina/tcpdf-laravel-5

laravel 5 的 tcpdf 支持

dev-main 2021-01-31 09:43 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:33:06 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

一个简单的 Laravel 5 服务提供者,包含一些基本配置以包含 TCPDF 库

TCPDF 并不支持 PHP 7,但有一个计划来支持它,请查看 这个

安装

您可以通过在项目的 composer.json 中要求 elibyy/tcpdf-laravel 包来通过 composer 安装 Laravel TCPDF 服务提供者。(由于该包需要 TCPDF,安装可能需要一段时间,因为其 .git 文件夹非常大)

Laravel 5.5+ 将使用自动发现功能。

{
    "require": {
        "elibyy/tcpdf-laravel": "5.8.*"
    }
}

如果您不使用自动发现,您需要将服务提供者/外观包括在 config/app.php 中。

'providers' => [
    //...
    Elibyy\TCPDF\ServiceProvider::class,
]

//...

'aliases' => [
    //...
    'PDF' => Elibyy\TCPDF\Facades\TCPDF::class
]

(请注意:TCPDF 不能用作别名)

对于 lumen,您应该添加以下行

$app->register(Elibyy\TCPDF\ServiceProvider::class);
class_alias(Elibyy\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

现在访问 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 不是我的项目的依赖项,因此您需要遵循他们的安装说明 这里

页眉/页脚助手

我收到了一个拉取请求,要求添加此功能,因此我添加了此功能

现在您可以使用 PDF::setHeaderCallback(function($pdf){})PDF::setFooterCallback(function($pdf){})