Php 在Laravel中扩展TCPDF类

Php 在Laravel中扩展TCPDF类,php,laravel,tcpdf,Php,Laravel,Tcpdf,我从Laravel4开始,我想使用TCPDF创建带有自定义页眉和页脚的文档,如下图所示。为此,我需要在某个地方扩展原始类,然后在服务提供者中使用扩展类。我还用作TCPDF的服务提供商。TCPDF是我的laravel TCPDF服务提供商的依赖项。这意味着它是从Laravel自动加载的。您可以创建自己的类,该类直接扩展TCPDF,然后重写header()和footer()方法。 例如,创建文件app/pdf/pdf.php: <?php namespace Pdf; class Pdf e

我从Laravel4开始,我想使用TCPDF创建带有自定义页眉和页脚的文档,如下图所示。为此,我需要在某个地方扩展原始类,然后在服务提供者中使用扩展类。我还用作TCPDF的服务提供商。

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');
    }
}
我知道,这不是最好的解决方案,但应该有效。 我的包有点快而脏,因为我需要在一个Laravel项目中使用TCPDF,所以我创建了这个小包。 我将优化我的包,以便您可以更轻松地重写函数


现在,我希望,这将帮助你

为了更好的扩展性,我已经更新了我的包。如果直接扩展TCPDF,则会忽略包的配置文件。使用新版本,您可以直接扩展我的包,配置将不再被忽略。只需运行
composer更新
,即可获得新版本。在您的PDF类中,仅将扩展类从
\TCPDF
更改为
\Maxxscho\laravelctpdf\laravelctpdf
,您就可以开始了。
// create new PDF document
$pdf = new \Pdf\Pdf;

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 003');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// ....