我们正在使用我们有链接的FPDF制作pdf报告。
我们的问题是我们无法从pdf报告中发送的链接中删除下划线和默认颜色。我们想在不同的链接上设置自定义的不同颜色。
以下是我们正在制作的内容。
$ text22 = preg_replace('/ \ S * \ b('。$ searchphrase [$ rr]。')\ b \ S * / i',' $ 1 ',$ aaa) ;
$ text22 = preg_replace('/ \ S * \ b('。$ searchphrase [$ rr]。')\ b \ S * / i',' $ 1 ',$ aaa) ;
$ PDF->的WriteHTML(utf8_decode($主));
下面是我们的pdf报告,现在我们必须从链接中删除下划线并在其上设置自定义颜色。
答案 0 :(得分:0)
您可能必须自己扩展FPDF类并更改 PutLink 功能中的下划线/颜色。
http://www.fpdf.org/en/script/script50.php
修改强>
这是扩展FPDF类的代码示例。实际上,由于WriteHTML函数不在FPDF类中,因此扩展了具有它的类。这是使其发挥作用的众多方法之一。在此示例中,您必须在附加属性( data-color )中指定链接颜色,因为该类无法读取CSS规则。您当然可以编写一个正则表达式来解析CSS,然后将颜色转换为r,g,b。但是对于一个更简单的例子,我把它排除在外。
<?php
// This class extends the Tutorial 6 class, which in turn extends the main FPDF class
class XPDF extends PDF
{
protected $clr = "";
function OpenTag($tag, $attr)
{
parent::OpenTag($tag, $attr);
if ($tag == "A")
{
if (isset($attr['DATA-COLOR']))
{
$this->clr = $attr['DATA-COLOR'];
}
else
{
$this->clr = "";
}
}
}
function CloseTag($tag)
{
parent::CloseTag($tag);
if ($tag == "A")
$this->clr = "";
}
function PutLink($URL, $txt)
{
// Put a hyperlink
if ($this->clr != "")
{
$clrs = explode(",", $this->clr);
$this->SetTextColor($clrs[0], $clrs[1], $clrs[2]);
}
else
{
$this->SetTextColor(0,0,255);
}
$this->SetStyle('U',true);
$this->Write(5,$txt,$URL);
$this->SetStyle('U',false);
$this->SetTextColor(0);
}
}
$html = 'This is some text and <a href="http://www.whatever.com">here is a link</a>. To specify the pdf colour of a link, you need to specify it as RGB numbers in a data-attribute, like <a href="http://www.whatever.com" data-color="255,0,0">this</a> or <a href="http://www.whatever.com" data-color="255,0,100">this</a>.';
$pdf = new XPDF();
// First page
$pdf->AddPage();
$pdf->SetFont('Arial','',14);
$pdf->WriteHTML($html);
$pdf->Output();
?>