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