如何为FPDF中的不同文本设置2种不同的颜色

时间:2015-03-28 15:23:12

标签: php pdf pdf-generation fpdf

如何在FPDF中设置2种不同颜色

我已尝试过以下代码

$pdf=new FPDF();                     
$pdf->AddPage('P', 'A5');
$pdf-> SetMargins(25, 50);
$pdf->SetTextColor(91,137,42); 
$pdf->SetFont('times','',10);
$pdf -> Text (60,  37,  'Title' ); 
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('times','',15);
$pdf -> Text (60,  37,  'Invoice' );

但是对于所有测试,它都显示一种颜色。

对此有何解决方案?

1 个答案:

答案 0 :(得分:1)

我从你的代码中做了一个最小的工作示例:

<?php
require('fpdf/fpdf.php');    
$pdf=new FPDF(); 
$pdf->AddPage('P', 'A5'); 
$pdf->SetMargins(25, 50); 
$pdf->SetTextColor(91,137,42); 
$pdf->SetFont('times','',10); 
$pdf->Text (60,  27,  'Title' ); 
$pdf->SetTextColor(99,0,0); 
$pdf->SetFont('times','',15); 
$pdf->Text (60,  57,  'Invoice' );    
$pdf->Output('test.pdf');

当生成的文档保持打开状态(okular test.pdf),更改颜色值并重新运行代码时,我可以看到文档更新并且颜色发生变化。代码按预期工作。


考虑到问题的第一个版本和您的评论,我可以想象您的问题是在页面标题中获取文本颜色?如果您按照文档进行操作,这也可以正常工作:

<?php
require('fpdf/fpdf.php');

class myPDF extends FPDF {
  function Header() {
    $this->SetFont('Arial','B',15);
    $this->setTextColor(0, 120, 120);
    $this->Cell(80);
    $this->Cell(30,10,'Page title',1,0,'C');
    $this->Ln(20);
  }
}

$pdf=new myPDF();
$pdf->AddPage('P', 'A5');
$pdf->SetMargins(25, 50);
$pdf->SetTextColor(91,137,42);
$pdf->SetFont('times','',10);
$pdf->Text (60,  27,  'Heading' );
$pdf->SetTextColor(99,0,0);
$pdf->SetFont('times','',15);
$pdf->Text (60,  57,  'Invoice' );
$pdf->Output('test.pdf');

请注意,在这种情况下,文本颜色必须在Header()函数中设置,而不是在以后创建包含标题的页面时...

这是生成的文档,您可以清楚地看到颜色: enter image description here