我想要它,以便说白色的文本将使用SetTextColor作为白色,而橙色使用橙色。
$pdf->SetTextColor(255,255,255);
$pdf->Cell(50,0,'WHITE ORANGE ORANGE WHITE',0,1,'C');
如何影响'ORANGE'字样以使用橙色文字颜色?
答案 0 :(得分:5)
我也需要这个功能。这是我写的一个简单的彩色字符串函数:
function cellMultiColor($stringParts) {
$currentPointerPosition = 0;
foreach ($stringParts as $part) {
// Set the pointer to the end of the previous string part
$this->_pdf->SetX($currentPointerPosition);
// Get the color from the string part
$this->_pdf->SetTextColor($part['color'][0], $part['color'][1], $part['color'][2]);
$this->_pdf->Cell($this->_pdf->GetStringWidth($part['text']), 10, $part['text']);
// Update the pointer to the end of the current string part
$currentPointerPosition += $this->_pdf->GetStringWidth($part['text']);
}
你可以这样使用它:
cellMultiColor([
[
'text' => 'Colored string example: ',
'color' => [0, 0, 0],
],
[
'text' => 'red',
'color' => [255, 0, 0],
],
[
'text' => ', ',
'color' => [0, 0, 0],
],
[
'text' => 'blue',
'color' => [0, 0, 255],
],
]);
答案 1 :(得分:4)
有可能用一点技巧。我只是打印2个单元格,一个在另一个上面,像这样:
//Setting the text color to black
$pdf->SetTextColor(0,0,0);
//Printing my cell
$pdf->SetFont('Arial','B');
$pdf->Cell(55,5,"Black Text ",1,0,'C');
$pdf->SetXY($coordXbase,$coordY);
//Setting the text color to red
$pdf->SetTextColor(194,8,8);
//Printing another cell, over the other
$pdf->SetFont('Arial','B');
//Give some space from the left border, and print the red text after the black text that is in the cell behind this one.
$pdf->Cell(55,5," Red Text",0,0,'C');
$pdf->SetXY($coordXbase,$coordY);
//Setting the text color back to back, in the next cells.
$pdf->SetTextColor(0,0,0);
结果如下:
由于我有点匆忙,我没有时间创建一些功能来帮助解决这个问题,但这将是一个很好的起点:)
P.S。:告诉你们,如果你们找到一种更简单的方法。
答案 2 :(得分:1)
我不得不做类似的事情。而不是颜色,我不得不改变字体的大小。 在我的单元格中,我调用了函数 所以,在你的情况下,你可以这样做
$pdf->Cell(50,0,white($pdf,'White').orange($pdf,'orange'),0,1,'C');
并将函数定义为
function white($pdf,$val){
$pdf->SetTextColor(255,255,255);
return $pdf->Text(0,0,$val);
}
橙色也一样。
提示:正确定位使用getX()和getY()
答案 3 :(得分:0)
答案#1:你做不到。根据定义,单元格的字体和颜色是统一的。您可以使用getStringWidth测量单词的宽度,并在一系列单元格中进行。
答案#2:许多贡献的脚本都是基于构建内置函数的变体。毕竟,你有适合所有FPDF的PHP代码。您可以创建自己的Cell_plus函数,该函数包含一组短语和另一个数组或两个或三个属性。然后可以将其作为附加脚本提供。
答案 4 :(得分:0)
您也可以使用writeHTML
方法(tcpdf ver 6.2),如此
$html = 'Simple text <span style="color: rgb(255,66,14);">Orange</span> simple <span style="color: rgb(12,128,128);">Turquoise</span>';
$this->writeHTML($html, true, false, true, false, '');
答案 5 :(得分:0)
您应该替换为:
$pdf->Cell(50,0,'WHITE ORANGE ORANGE WHITE',0,1,'C');
为此
$pdf->Cell(50,0,'WHITE ORANGE ORANGE WHITE',0,1,'C', true);
//最后添加真实参数