FPDF: Cambiare il colore del testo all’interno di una Cella?

Voglio, in modo che il testo che dice bianco, l’uso SetTextColor come il bianco e l’arancione di utilizzare arancione.

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

Come posso influenzare il ‘ARANCIONE’ parole per l’utilizzo di un arancione il colore del testo?

Va bene. Grazie per la vostra preoccupazione.
Non può questo link per dare un indizio? stackoverflow.com/questions/3477372/…
Ma io sono confuso da questo, come io ancora vorrei rimanere su una linea. Sto cercando di fare una differenza visiva per il colore del testo unico. Forse ho letto male qualcosa.

InformationsquelleAutor Michael Crothers | 2013-01-14

7 Replies
  1. 5

    Ho bisogno che la funzionalità di troppo. Questa è la funzione che ho scritto per fare una semplice stringa colorata:

    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']);
        }

    e lo si usa come questo:

    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],
        ],
    ]);

    InformationsquelleAutor Ioulian Alexeev

  2. 4

    È possibile con un po ‘ di trucco. Ho appena fatto la stampa di 2 Celle, uno sopra l’altro, come questo:

    //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);

    Il risultato è stato questo:

    FPDF: Cambiare il colore del testo all'interno di una Cella?

    Come mi è stato un po ‘ di corsa, non ho avuto il tempo di creare una funzione per aiutare con questo, ma questo sarebbe un buon punto di partenza idea 🙂

    P. S.: Dire se voi ragazzi a trovare un modo più semplice.

    InformationsquelleAutor Eder Franco

  3. 2

    SE non è necessario utilizzare il metodo di Cella, è possibile utilizzare il metodo di Scrittura, invece:

    $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);

    InformationsquelleAutor rod_torres

  4. 1

    Ho dovuto fare una cosa simile. Invece di colore ho dovuto cambiare la dimensione del carattere.
    nel mio cellulare ho chiamato la funzione invece
    quindi,nel tuo caso si può fare questo

    $pdf->Cell(50,0,white($pdf,'White').orange($pdf,'orange'),0,1,'C');

    e definire la funzione come

    function white($pdf,$val){
                  $pdf->SetTextColor(255,255,255);
                  return $pdf->Text(0,0,$val);
                  }

    e lo stesso dicasi per la orange.

    SUGGERIMENTO: per posizionare correttamente utilizzare getX() e getY()

    La soluzione non sembra funzionare per me… come si usa getX() e getY() per il colore di una parola da qualche parte in una riga centrata, come nell’esempio?

    InformationsquelleAutor codermonkey

  5. 0

    Risposta #1: non È possibile. Una cella per definizione è uniforme nel tipo di carattere e il colore. È possibile misurare la larghezza delle parole con getStringWidth e di farlo in una serie di Celle.

    Risposta #2: Molti l’hanno contribuito gli script sono basata sulla costruzione di varianti di funzioni built-in. Dopo tutto, è necessario il codice PHP destra c’è per tutti FPDF. Potete fare il vostro proprio Cell_plus funzione che prende un array di frasi e un altro array o due o tre di attributi. Poi, magari, contribuire come uno script aggiuntivo.

    InformationsquelleAutor Marc Rochkind

  6. 0

    Si può anche utilizzare un writeHTML metodo (tcpdf ver 6.2) così

    $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, '');

    InformationsquelleAutor Maxim Ilin

  7. 0

    È necessario sostituire questo:

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

    per questo

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

    //Aggiungi il vero param alla fine

    InformationsquelleAutor kelvin2710

Lascia un commento