Почему в ячейке используется левый отступ, использующий FPDF в php? - PullRequest
7 голосов
/ 26 июня 2011

Я печатаю ячейку, используя класс FPDF (http://www.fpdf.org/) в php. Ячейка должна быть размещена в верхнем левом углу.

Все отлично работает, за исключением того, что внутри ячейки добавлен левый отступ.

Вот мой код:

$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

Вот скриншот PDF, который выводится с FPDF:

Screenshot of PDF output with FPDF

Почему в ячейке с использованием FPDF в php есть левый отступ и как я могу удалить это заполнение?

Ответы [ 6 ]

16 голосов
/ 20 февраля 2013

Я знаю, что это очень старая версия, но у меня была и исправлена ​​та же проблема, поэтому, возможно, кто-то найдет ее полезной.

В классе FPDF есть свойство, называемое $ cMargin, которое используется для вычисления смещения по оси X текста до его печати в ячейке, но, похоже, для него нет установщика. Это публичное свойство, поэтому после создания экземпляра класса FPDF просто вызовите:

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

И в ваших клетках больше не будет этого отступа слева.

6 голосов
/ 09 апреля 2016

Небольшое исправление обновлений

<?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 голосов
/ 08 февраля 2013

Я столкнулся с той же проблемой.Только 1-я строка имеет это нежелательное поле, поэтому мой обходной путь был таким:

  $pdf->Ln(); //workaround for 1st line
  $pdf->Cell(..);
2 голосов
/ 03 сентября 2012

Я не могу понять, как удалить прокладку.

В качестве обходного пути полезно знать, что он кажется равным 1 мм независимо от размера шрифта. То же самое дополнение применяется к правому краю с выровненным по правому краю текстом.

1 голос
/ 26 июня 2011

Вы пробовали запустить SetMargins(0,0)?

SetMargins

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

Описание

Определяет левый, верхний и правый поля. По умолчанию они равны 1 см. Вызовите этот метод, чтобы изменить их.

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

0 голосов
/ 16 января 2017

Используйте SetMargins перед AddPage

пример:

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