在Laravel中扩展TCPDF类

时间:2013-12-26 09:14:05

标签: php laravel tcpdf

我从Laravel 4开始,我想使用TCPDF创建带有自定义页眉和页脚的文档,就像在example中一样。为此,我需要在某处扩展原始类,然后在服务提供者中使用扩展类。我还使用https://github.com/maxxscho/laravel-tcpdf作为TCPDF的服务提供者。

1 个答案:

答案 0 :(得分:3)

TCPDF是我的laravel-tcpdf服务提供者的依赖项。这意味着它是从Laravel自动加载的。您可以创建自己的类,直接扩展TCPDF,然后覆盖header()和footer()方法。 例如,创建文件app / pdf / Pdf.php:

<?php namespace Pdf;

class Pdf extends \TCPDF {

    //Page header
    public function Header() {

        // Set font
        $this->SetFont('helvetica', 'B', 20);
        // Title
        $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M');
    }

    // Page footer
    public function Footer() {
        // Position at 15 mm from bottom
        $this->SetY(-15);
        // Set font
        $this->SetFont('helvetica', 'I', 8);
        // Page number
        $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
    }
}

要自动加载新文件"app/pdf" composer.json autoload,然后从您的控制台运行classmap

现在创建PDF:

composer dump-autoload

我知道,这不是最好的解决方案,但应该有效。 我的软件包有点快,因为我需要在Laravel项目中使用TCPDF,所以我创建了这个小软件包。 我将优化我的包,以便您可以更轻松地覆盖函数。

现在,我希望,这会对你有帮助!