繁体   English   中英

PHP TCPDF删除标题的底部边框

[英]PHP TCPDF remove header's bottom border

我正在尝试在 TCPDF 中创建一个标题,但是它下面总是有一个边框。 有没有办法可以删除底部边框?

这适用于某些版本:

// Call before the addPage() method
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);

如果您不想继承或更改 tcpdf 源代码,只需调用setHeaderData方法并指定白线颜色。

$pdf->setHeaderData('',0,'','',array(0,0,0), array(255,255,255) );  

通过扩展 TCPDF 类并修改页眉和页脚解决的问题。

class MYPDF extends TCPDF { 

    public function Header() 
    { 
        $image_file = K_PATH_IMAGES.'pdf-header.jpg'; 
        $this->Image($image_file, 160, 10, 40, '', 'JPG', '', 'T', false, 20, '', false, false, 0, false, false, false); 
        $this->SetFont('helvetica', 'B', 10); 
    } 

    public function Footer() 
    { 
        $this->SetY(-15); 
        $this->SetFont('helvetica', 'I', 8); 

    }
}

tcpdf.php:

// print an ending header line
$this->SetLineStyle(array('width' => 0.25 / $this->k, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 255, 255)));

如果此线程中发布的其他解决方案不起作用,我以这种方式解决:

TL;博士
在 Tcpdf 类 (tcpdf.php) 的 Footer() 函数中:
替换此行:

$this->Cell(0, 0, $pagenumtxt, 'T', 0, 'L'); // line 3527 in version 6.3.1
$this->Cell(0, 0, $this->getAliasRightShift().$pagenumtxt, 'T', 0, 'R'); // line 3530 in version 6.3.1

有了这条线

$this->Cell(0, 0, $pagenumtxt, 0, 0, 'L');
$this->Cell(0, 0, $this->getAliasRightShift().$pagenumtxt, 0, 0, 'R');

替代方式1
在 Tcpdf 类 (tcpdf.php) 的 Footer() 函数中注释此行:
在我的文件(6.3.1 版)中,它们位于第 3524 行

//Print page number
if ($this->getRTL()) {
    $this->SetX($this->original_rMargin);
    $this->Cell(0, 0, $pagenumtxt, 'T', 0, 'L');
} else {
    $this->SetX($this->original_lMargin);
    $this->Cell(0, 0, $this->getAliasRightShift().$pagenumtxt, 'T', 0, 'R');
}

这将禁用页脚中页码的呈现,但至少它会删除不需要的行。

替代方式2
如果这些方法不起作用,请在 tcpdf.php 文件中搜索此字符串:

$this->SetLineStyle(array

您应该找到 3 次出现,将数组的“颜色”属性替换为值[0,0,0] (或背景的 rgb 颜色),这应该会导致线条变为白色(或您设置的颜色) . 我使用这种方法通过放置自定义的奇怪颜色并查看正在渲染的颜色来解决问题所在。

解释
该行被渲染是因为在行中

$this->Cell(0, 0, $pagenumtxt, 'T', 0, 'L');
$this->Cell(0, 0, $this->getAliasRightShift().$pagenumtxt, 'T', 0, 'R');

边框属性设置为“T”(上边框)。 您可以通过将边框属性设置为 0 来禁用边框( 请参阅此处的文档,$border param )。 如果这不起作用,您可以完全禁用页码(以及边框)的呈现,或者您可以将边框设置为与您的实际背景相匹配的自定义颜色。

在 tcpdf Class 的 Header() 函数中注释这一行:

$this->Cell(($this->w - $this->original_lMargin - $this->original_rMargin), 0, '', 'T', 0, 'C');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM