[FPDF] Runde Ecken mit 2 Hintergrundfarben

martin

Well-Known Member
Hi

Zum Thema "runde Ecken" hab ich schon was gefunden, klappt auch prima, sogar mit Hintergrundfarbe :p
Das hier ist das Script dafür:
Code:
<?php
require('fpdf.php');

class PDF extends FPDF
{
    function RoundedRect($x, $y, $w, $h,$r, $style = '')
    {
        $k = $this->k;
        $hp = $this->h;
        if($style=='F')
            $op='f';
        elseif($style=='FD' or $style=='DF')
            $op='B';
        else
            $op='S';
        $MyArc = 4/3 * (sqrt(2) - 1);
        $this->_out(sprintf('%.2f %.2f m',($x+$r)*$k,($hp-$y)*$k ));
        $xc = $x+$w-$r ;
        $yc = $y+$r;
        $this->_out(sprintf('%.2f %.2f l', $xc*$k,($hp-$y)*$k ));

        $this->_Arc($xc + $r*$MyArc, $yc - $r, $xc + $r, $yc - $r*$MyArc, $xc + $r, $yc);
        $xc = $x+$w-$r ;
        $yc = $y+$h-$r;
        $this->_out(sprintf('%.2f %.2f l',($x+$w)*$k,($hp-$yc)*$k));
        $this->_Arc($xc + $r, $yc + $r*$MyArc, $xc + $r*$MyArc, $yc + $r, $xc, $yc + $r);
        $xc = $x+$r ;
        $yc = $y+$h-$r;
        $this->_out(sprintf('%.2f %.2f l',$xc*$k,($hp-($y+$h))*$k));
        $this->_Arc($xc - $r*$MyArc, $yc + $r, $xc - $r, $yc + $r*$MyArc, $xc - $r, $yc);
        $xc = $x+$r ;
        $yc = $y+$r;
        $this->_out(sprintf('%.2f %.2f l',($x)*$k,($hp-$yc)*$k ));
        $this->_Arc($xc - $r, $yc - $r*$MyArc, $xc - $r*$MyArc, $yc - $r, $xc, $yc - $r);
        $this->_out($op);
    }

    function _Arc($x1, $y1, $x2, $y2, $x3, $y3)
    {
        $h = $this->h;
        $this->_out(sprintf('%.2f %.2f %.2f %.2f %.2f %.2f c ', $x1*$this->k, ($h-$y1)*$this->k,
            $x2*$this->k, ($h-$y2)*$this->k, $x3*$this->k, ($h-$y3)*$this->k));
    }
}

$pdf=new PDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetLineWidth(0.5);
$pdf->SetFillColor(192);
$pdf->RoundedRect(70, 30, 68, 46, 3.5, 'DF');
$pdf->Output();
?>

Leider bin ich nicht so der Programmierguru und bräuchte deshalb eure Hilfe. Ich möchte jetzt so ein Rechteck erstellen mit runden Ecken (was schon klappt anhand des Scriptes), wobei die Hintergrundfarbe in der oberen Hälfte des Rechteckes grau und in der unteren Hälfte gelb sein sollte.

Ich weiß, ist viel verlangt, aber ich hab's schon selbst probiert und ich kann einfach zu wenig php. Vielleicht ist es für jemanden von euch ja nur ne Kleinigkeit, ich wäre jedenfalls sehr dankbar. :o

Gruß
martin
 
ich habs mal an ein php forum weitergegeben, interessiert mich nämlich auch, schonmal versucht aus 2 rechtecken eins zu machen? also eins in grau mit runden ecken oben und eins in gelb mit runden ecken unten
 
Hi d4mi4n

Genau das hab ich jetzt gemacht. Auf der Seite von fpdf gibt es noch ein weiteres Script, womit man diejenigen Ecken, die abgerundet werden sollen, explizit angeben muss. Das hab ich jetzt gemacht und klappt für mein Bsp. auch perfekt. Mit den 2 Rechtecken erhalte ich zwar eine Trennlinie zwischen den Rechtecken, aber das passt schon.

Dank dir
 
Ja, aber wie gesagt, mit Linie gefällt es mir jetzt sogar besser. Mal sehen, vielleicht braucht man ja ein anderes mal die eingefärbte Linie.
 
Zurück
Oben