为什么在php中使用FPDF的单元格中有左边的填充?

时间:2011-06-26 01:41:06

标签: php pdf pdf-generation fpdf

我正在使用php中的FPDF(http://www.fpdf.org/)类打印一个单元格。单元格应放在左上角。

除了在单元格内添加左边距之外,一切都很好。

这是我的代码:

$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

以下是使用FPDF输出的PDF的屏幕截图:

Screenshot of PDF output with FPDF

为什么在php中使用FPDF的单元格中有左边的填充?如何删除填充?

6 个答案:

答案 0 :(得分:16)

我知道这是超级老,但我已经修复了同样的问题,所以也许有人会觉得它很有用。

FPDF类中有一个名为$ cMargin的属性,它用于计算文本在单元格中打印之前的x偏移量,但似乎没有为它设置setter。它是一个公共属性,因此在您实例化FPDF类之后,只需调用:

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

你的细胞不再有左边的填充物。

答案 1 :(得分:5)

小修正更新

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

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

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

答案 2 :(得分:2)

我无法弄清楚如何移除填充。

作为一种解决方法,无论字体大小如何,知道它似乎是1毫米是很有用的。使用右对齐文本在右边缘应用相同的填充。

答案 3 :(得分:2)

我遇到了同样的问题。只有第一行有这个不必要的余量,所以我的解决方法是:

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

答案 4 :(得分:1)

您是否尝试过SetMargins(0,0)

  

<强> SetMargins

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

  

描述

     

定义左边距,上边距和右边距。 默认情况下,它们等于1厘米。调用此方法更改它们。

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

答案 5 :(得分:0)

在AddPage

之前使用SetMargins

示例:

$pdf=new PDF();
$pdf->SetMargins(23, 44, 11.7);
$pdf->AliasNbPages();
$pdf->AddPage();