FPDF - Report template

0

I'm starting in the FPDF report library and need help to generate a report in that format.

    
asked by anonymous 11.12.2017 / 12:26

1 answer

0

Create a rotation.php file:

    <?php
    require_once("fpdf/fpdf.php");

    class PDF_Rotate extends FPDF
    {
        var $angle=0;

        function Rotate($angle, $x=-1, $y=-1)
        {
                if($x==-1)
                        $x=$this->x;
                if($y==-1)
                        $y=$this->y;
                if($this->angle!=0)
                        $this->_out('Q');
                $this->angle=$angle;
                if($angle!=0)
                {
                        $angle*=M_PI/180;
                        $c=cos($angle);
                        $s=sin($angle);
                        $cx=$x*$this->k;
                        $cy=($this->h-$y)*$this->k;
                        $this->_out(sprintf('q %.5f %.5f %.5f %.5f %.2f %.2f cm 1 0 0 1 %.2f %.2f cm', $c, $s, -$s, $c, $cx, $cy, -$cx, -$cy));
                }
        }

        function _endpage()
        {
                if($this->angle!=0)
                {
                        $this->angle=0;
                        $this->_out('Q');
                }
                parent::_endpage();
        }
    }

            class PDF extends PDF_Rotate
            {
            function RotatedText($x, $y, $txt, $angle)
            {
                    //Text rotated around its origin
                    $this->Rotate($angle, $x, $y);
                    $this->Text($x, $y, $txt);
                    $this->Rotate(0);
            }

            function RotatedImage($file, $x, $y, $w, $h, $angle)
            {
                    //Image rotated around its upper-left corner
                    $this->Rotate($angle, $x, $y);
                    $this->Image($file, $x, $y, $w, $h);
                    $this->Rotate(0);
            }
            }
    ?>

Then at the beginning of your .PHP file:

    <?php
        define('FPDF_FONTPATH', 'fpdf/font/');
        require('rotation.php');
    ?>

In the line to create the PDF:

    $pdf = new PDF("P","mm","A4");

In the row you want to rotate the text:

     $pdf->RotatedText(100, 60, 'Rotacionar 90 graus', 90);
    
14.12.2017 / 19:42