spatie/laravel-pdf

在Laravel应用程序中创建PDF

1.5.2 2024-07-16 07:42 UTC

This package is auto-updated.

Last update: 2024-09-16 08:02:59 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此软件包提供了一种简单的方法在Laravel应用程序中创建PDF。底层使用Chromium从Blade视图生成PDF。您可以使用现代CSS功能,如grid和flexbox,来创建漂亮的PDF。

以下是一个快速示例

use Spatie\LaravelPdf\Facades\Pdf;

Pdf::view('pdfs.invoice', ['invoice' => $invoice])
    ->format('a4')
    ->save('invoice.pdf')

这将渲染带有给定数据的Blade视图pdfs.invoice并将其保存为PDF文件。

您也可以从您的控制器返回PDF作为响应

use Spatie\LaravelPdf\Facades\Pdf;

class DownloadInvoiceController
{
    public function __invoke(Invoice $invoice)
    {
        return Pdf::view('pdfs.invoice', ['invoice' => $invoice])
            ->format('a4')
            ->name('your-invoice.pdf');
    }
}

您还可以测试您的PDF

use Spatie\LaravelPdf\Facades\Pdf;

it('can render an invoice', function () {
    Pdf::fake();

    $invoice = Invoice::factory()->create();

    $this->get(route('download-invoice', $invoice))
        ->assertOk();
        
    Pdf::assertRespondedWithPdf(function (PdfBuilder $pdf) {
        return $pdf->contains('test');
    });
});

支持我们

我们投入了大量资源来创建最好的开源软件包。您可以通过购买我们的付费产品之一来支持我们。

我们非常感谢您从您的家乡寄给我们一张明信片,说明您正在使用我们的哪个软件包。您可以在我们的联系页面上找到我们的地址。我们将在我们的虚拟明信片墙上发布所有收到的明信片。

文档

所有文档都可以在我们的文档网站上找到

测试

要运行测试套件,您需要安装Puppeteer。请参阅Browsershot要求。通常npm -g i puppeteer就可以解决问题。

此外,您还需要安装pdftotext CLI,它是poppler-utils软件包的一部分。更多信息可以在spatie/pdf-to-text的readme中找到。通常brew install poppler-utils就足够了。

最后,使用以下命令运行测试

composer test

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全漏洞

请参阅我们的安全策略,了解如何报告安全漏洞。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件