steven-starz/tcpdf-laravel

支持Laravel 6, 7, 8, 9版本的tcpdf

1.0.0 2024-02-21 06:56 UTC

This package is not auto-updated.

Last update: 2024-09-19 08:04:50 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

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

TCPDF在PHP 7中实际上不支持,但有一个支持它的计划,请查看这里

安装

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

composer require StevenStarz/tcpdf-laravel

或者

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

{
    "require": {
        "StevenStarz/tcpdf-laravel": "^9.0"
    }
}

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

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

//...

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

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

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

$app->register(StevenStarz\TCPDF\ServiceProvider::class);
class_alias(StevenStarz\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="StevenStarz\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不是我的项目的依赖项,因此您需要遵循他们的安装说明这里

头部/尾部助手

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

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