• Xhanch - WP Manga - Have your own automated manga reader website

PHP Script – Create PDF With FPDF

FPDF is one of powerful and free PHP library for you to create PDF pages or documents on the fly. The library is well documented is easy to use for you who know PHP. PDF pages can be used to generate e-Books, online web reporting and so on. In this topic, we will show you how to create PDF pages using this powerful library.

Download FPDF Class Library

As the first step, you need to download FPDF Class Library. FPDF Class Library can be downloaded for free at fpdf.org. Copy the package into your project folder. Please read the installation guide to know how to place this package.

Source Code

<?
    //By    : Xhanch Studio
    //URL   : http://xhanch.com/

    //define FPDF font path
    define('FPDF_FONTPATH', 'fpdf/font/');
    //include FPDF class library file
    require_once 'fpdf/fpdf.php';

    //create an instance of FPDF
    //The first parameter should be paper orientation
    //P refers to potrait and L refers to Letter
    //The second parameter should be measuring-unit used
    //Available units: cm, mm, in and pt
    //The last parameter should be paper type
    //Availale paper types: A4, Letter, and Legal
    $pdf = new FPDF('P', 'cm', 'A4');

    //Init PDF creation
    $pdf->open();

    //Add a new PDF blank page
    $pdf->AddPage();

    //You may set the margin (optional)
    //The first param is the left margin
    //The second param is the top margin
    //The third param is the right margin
    //The fourth param is the bottom margin
    $pdf->SetMargins(1,1,1,1);

    //Set font
    //The first param should be the font family
    //Available fonts: courier, helvetica, times
    //The second param should be the font style
    //Available style: B(Bold), U(Underline) and I(Italic)
    //The third param should be the font size
    $pdf->SetFont('Arial', 'BUI', 21);

    //Set font color
    //Color is represent by RGB
    //The first param is Red color index
    //The second param is Green color index
    //The third param is Blue color index
    $pdf->SetTextColor(200,75,75);

    //Print a text on the page
    //The first param should be the width of text area
    //0 value will make the FPDF automate the width
    //The second param is the height
    //The third param is the text
    $pdf->Cell(0, 2, 'Hello there!');

    //Print a line break
    //The param is the height of line spacing
    //If you leave it empty, it will use default size
    $pdf->Ln(2);

    //Set text alignment and bordering
    //The fourth param is the size of border
    //0 means borderless
    //The fifth param is the size of line spacing
    //0 means no spacing after the text is printed
    //The last param is the text alignment
    //C(Center), L(Left), R(Right)
    $pdf->Cell(0, 2, 'Hello there!',0, 0, 'C');

    $pdf->Ln(1.5);

    //You may re-define the font style as you wish
    $pdf->SetFont('Arial', 'I', 12);
    $pdf->SetTextColor(0,0,255);

    //Print a multiline/paragraph text
    $text = '
        this is a long paragraph. this is a long paragraph.
        this is a long paragraph. this is a long paragraph.
        this is a long paragraph. this is a long paragraph.
        this is a long paragraph. this is a long paragraph.
        this is a long paragraph. this is a long paragraph.
        this is a long paragraph. this is a long paragraph.
    ';
    //The first param should be the width of text area
    //0 value will make the FPDF automate the width
    //The second param is the line spacing for this paragraph
    //The third param is the text
    $pdf->MultiCell(17.5,0.5,$text);
    //You may add more param for multicell
    //The fourth param is the border width
    //The fifth param is the alignment
    //e.g: $pdf->MultiCell(8,1,$text,1,'L');

    $pdf->Ln(0.5);

    $pdf->SetFont('Arial', 'U', 8);
    $pdf->SetTextColor(0,0,200);

    //Add a link
    //The first param is the line height
    //The second param is the link text
    //The last param is the link URL
    $pdf->Write(1, 'FPDF Example by Xhanch', 'http://xhanch.com');

    $pdf->Ln(0.5);
    //Adding image
    //The first param is the file path
    //Allowed type: jpg, jpeg, gif and png
    //The second param is the x coordinate of the page
    //The third param is the y coordinate of the page
    //The fourth param is the width of the image
    //The fifth param is the height of the image
    $pdf->Image('http://xhanch.com/xhanch-banner.jpg', 1, 10, 5.8, 1.5);

    //Creating table
    //Table can be created by using Cell function
    //We just need to set the cell border

    $pdf->Ln(5.5);

    //Data for the table
    $header = array('Col A', 'Col B', 'Col C');
    $data = array(
        array('A1', 'B1', 'C1'),
        array('A2', 'B2', 'C2'),
        array('A2', 'B2', 'C2')
    );

    //Simple table
    foreach($header as $col)
    $pdf->Cell(2, 0.5, $col, 1);
    $pdf->Ln();
    foreach($data as $row){
        foreach($row as $col)
            $pdf->Cell(2, 0.5, $col, 1);
        $pdf->Ln();
    }

    $pdf->Ln(0.5);

    //Improved table
    //Set Column widths
    $w=array(2,2,2);
    for($i=0;$i<count($header);$i++)
        $pdf->Cell($w[$i],0.5,$header[$i],1,0,'C');
    $pdf->Ln();
    foreach($data as $row){
        $pdf->Cell($w[0],0.5,$row[0],'LR');
        $pdf->Cell($w[1],0.5,$row[1],'LR');
        $pdf->Cell($w[2],0.5,$row[2],'LR');
        $pdf->Ln();
    }
    $pdf->Cell(array_sum($w),0,'','T');

    $pdf->Ln(0.5);

    //Colored table
    $pdf->SetFillColor(255,0,0);
    $pdf->SetTextColor(255);
    $pdf->SetDrawColor(128,0,0);
    $pdf->SetLineWidth(0.01);
    $pdf->SetFont('','B');
    $w=array(2,2,2);
    for($i=0;$i<count($header);$i++)
        $pdf->Cell($w[$i],0.5,$header[$i],1,0,'C',true);
    $pdf->Ln();
    $pdf->SetFillColor(224,235,255);
    $pdf->SetTextColor(0);
    $pdf->SetFont('');
    //Data
    $fill=false;
    foreach($data as $row){
        $pdf->Cell($w[0],0.5,$row[0],'LR',0,'L',$fill);
        $pdf->Cell($w[1],0.5,$row[1],'LR',0,'L',$fill);
        $pdf->Cell($w[2],0.5,$row[2],'LR',0,'L',$fill);
        $pdf->Ln();
        $fill=!$fill;
    }
    $pdf->Cell(array_sum($w),0,'','T');

    //Displaying PDF page
    $pdf->Output();

    //If you want to force the viewer to download
    //the PDF file use the following command instead
    //of $pdf->Output()
    //$pdf->Output('file_name.pdf', 'D');
?>

Code Result

Click here to view the PDF generated by the above PHP script.

Click here to support our work. Thanks :)


One Response to “PHP Script – Create PDF With FPDF”

  1. alaa says:

    i want put html script and convert it to pdf in the fpdf class

    i dont can work it

    help me please

Leave a Reply

  • NOTICE

    Xhanch Studio is finally online after successfully moved from shared hosting to our own VPS Hosting.

    Please note that our primary email admin@xhanch.com is not functioning yet. So, please send your emails to xhanch@gmail.com for the moment until we resolve this issue.

    Regards, Xhanch Studio
  • Sponsored Ads

    WalkNote.com - A Place to Share, Have Fun and Get Connected Place you ad here
  • PayPal Verified

    Happy with our free services? You may donate us. Thanks!

    Donate
  • Latest Tweets

    Here are our recent tweets:

    • @xhanch Your a legend!!! I have just used the first part of the code so the links are a different colour and it looks fab, Thanks! - posted on 3 days ago via Tweetie for Mac

    • Xhanch - My Twitter 2.0.2 is released. Some minor fixings - posted on 3 days ago via web

    • We have finished the website migration to a VPS server - posted on 3 days ago via web

    • @Bunglenick put this code to custom CSS: {xmt_id}.xmt ul li.tweet_list{color:#ffffff} {xmt_id}.xmt ul li.tweet_list a{color:#ffffff} - posted on 3 days ago via web

    • @xhanch Hi there, how do I go about changing the colour of the text in your twitter app? Its black but I need white. - posted on 5 days ago via Tweetie for Mac