Why is there a left padding in a cell using FPDF in php?

30,827

Solution 1

I know this is super old, but I had and fixed the same issue so maybe someone will find it useful.

There's a property in the FPDF class called $cMargin, which is used to calculate the x-offset of the text before it gets printed within the cell, but there doesn't appear to be a setter for it. It's a public property, so after you've instantiated your FPDF class, just call:

$pdf = new fpdf('P','mm','A4');
$pdf->cMargin = 0;

And your cells won't have that padding on the left any more.

Solution 2

Small fix updateproof

<?php
require("fpdf.php");

class CustomFPDF extends FPDF{
    function SetCellMargin($margin){
        // Set cell margin
        $this->cMargin = $margin;
    }
}
?>

<?php
$pdf = new CustomFPDF();
$pdf->setCellMargin(0);
?>

Solution 3

I can't work out how to remove the padding.

As a workaround, it is useful to know that it seems to be 1mm, regardless of font size. The same padding is applied at the right edge with right aligned text.

Solution 4

i've ran into the same problem. Only the 1st line has this unwanted margin, so my workaround was this:

  $pdf->Ln(); //workaround for 1st line
  $pdf->Cell(..);

Solution 5

Have you tried running SetMargins(0,0)?

SetMargins

SetMargins(float left, float top [, float right])

Description

Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change them.

http://www.fpdf.org/en/doc/setmargins.htm

Share:
30,827
zeckdude
Author by

zeckdude

Front and back-end Developer from Los Angeles, CA

Updated on January 17, 2020

Comments

  • zeckdude
    zeckdude over 4 years

    I am printing a cell using the FPDF(http://www.fpdf.org/) class in php. The cell should be placed into the top left corner.

    Everything works great, except that a left padding is added inside the cell.

    Here is my code:

    $pdf = new FPDF('L', 'mm', array(50.8,88.9));
    $pdf->addPage('L', array(50.8,88.9));
    $pdf->SetDisplayMode(100,'default');
    $pdf->SetTextColor(0,0,0);
    $pdf->SetMargins(0,0,0);    
    $pdf->SetAutoPageBreak(0);
    $pdf->SetFont('Arial','',8.5);
    
    $pdf->SetXY(0, 0); //sets the position for the name
    $pdf->Cell(0,2.98740833, "Your Name", '1', 2, 'L', false); //Name
    

    Here's a screenshot of the PDF that is outputting with FPDF:

    Screenshot of PDF output with FPDF

    Why is there a left padding in a cell using FPDF in php and how can I remove the padding?

  • zeckdude
    zeckdude about 13 years
    Thank you for the tip, but I am actually using that function already. I had not listed it here because I didn't think it was important. I have now updated all the functions I am using so that you have a better idea.
  • John Magnolia
    John Magnolia over 10 years
    Solved my issue too, you can pass the height value to the Ln(1)
  • kurdtpage
    kurdtpage over 7 years
    This function is for setting the margin for the entire page, not each cell.
  • kurdtpage
    kurdtpage over 7 years
    A small aside, the cell margin has no effect if the cell is set to Center alignment
  • Anwar
    Anwar almost 7 years
    In FPDF 1.8.1 This property is protected, so this answer will not work.
  • Naitik Kundalia
    Naitik Kundalia almost 6 years
    @AnwarNairi so what we will have to do to get padding in cell?
  • spro
    spro over 3 years
    For the Python pyfpdf equivalent you can set pdf.c_margin = 0