8

白を示すテキストは SetTextColor を白として使用し、オレンジはオレンジを使用するようにします。

$pdf->SetTextColor(255,255,255);
$pdf->Cell(50,0,'WHITE ORANGE ORANGE WHITE',0,1,'C');

「ORANGE」という単語に影響を与えて、オレンジ色のテキストを使用するにはどうすればよいですか?

4

7 に答える 7

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],
    ],
]);
于 2014-01-16T16:30:59.730 に答える
5

ちょっとしたコツで可能です。次のように、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);

結果は次のとおりです。

マルチカラー セルの結果

私は少し急いでいたので、これを支援する関数を作成する時間がありませんでしたが、これは良い出発点のアイデアになるでしょう :)

PS: もっと簡単な方法を見つけたら教えてください。

于 2013-06-29T13:22:56.853 に答える
3

Cell メソッドを使用する必要がない場合は、代わりに Write メソッドを使用できます。

$pdf->SetFont('Arial','b',12);
$pdf->SetTextColor(153,0,153);
$pdf->Write(7,'Text in color, ');
$pdf->SetFont('Arial','',12);
$pdf->SetTextColor(0,0,0);
$pdf->Write(7,'and text in black all in the same line'));
$pdf->Ln(7);
于 2016-04-13T18:50:42.703 に答える
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() を使用します。

于 2014-04-04T12:59:49.540 に答える
0

回答 #1: できません。定義上、セルはフォントと色が統一されています。getStringWidth を使用して単語の幅を測定し、一連のセルで実行できます。

回答 #2: 提供されたスクリプトの多くは、組み込み関数のバリアントの構築に基づいています。結局のところ、FPDF のすべての PHP コードがすぐそこにあります。句の配列と別の配列、または 2 つまたは 3 つの属性を受け取る独自の Cell_plus 関数を作成できます。その後、追加のスクリプトとして投稿してください。

于 2013-01-15T05:53:42.640 に答える