使用fpdf时遇到奇怪的上边距Write()

时间:2015-01-25 23:51:01

标签: php pdf pdf-generation fpdf fpdi

我正在尝试将文字写入PDF,而且页面顶部似乎有一个奇怪的边距。

这是我的以下代码:

require_once('fpdf.php');
require_once('fpdi/fpdi.php');

//Start the FPDI
$pdf = new FPDI('P', 'pt');

//Set the source PDF file
$source_file = $pdf->setSourceFile("template.pdf");

//Import the first page of the file
$tppl = $pdf->importPage(1);

$pdf->AddPage();

//get size of pdf page
$size = $pdf->getTemplateSize($tppl);

$pdf->useTemplate($tppl, null, null, $size['w'], $size['h'], true);
$pdf->SetMargins(0, 0, 0);
$pdf->SetTextColor(0, 0, 0); 

当我使用font-size pt 12并写文本时,我得到了这个:

$pdf->SetFont('Arial', '', 12);
$pdf->SetXY(0, 0);
$pdf->Write(0, "Hi");

enter image description here

当我$pdf->SetXY(0, 7.5)时,我得到了这个

enter image description here

以上看起来我可以轻松地向Y添加7.5分并且没问题。

但是,如果我更改了字体大小,则顶部和文本之间的距离会增加一点。

$pdf->SetFont('Arial', '', 8);

enter image description here

任何人都可以帮我弄清楚如何中和这个至少使它成为如此,如果我将XY设置为数字,它会将它放在某个位置而不管字体大小?我尝试了不同的pdf,它的工作原理完全相同。

修改

我做了$pdf->GetY()而我得到28.35

2 个答案:

答案 0 :(得分:0)

您只需将行高定义为零。因此,文本以#34;为中心"垂直于0。

bounding box of the text

公共线高是:

$pdf->Write($pdf->FontSize * 1.2, "Hi");

答案 1 :(得分:0)

我解决了这个问题,而不是Write()我使用了Cell()

我认为主要问题是没有坚固的宽度和高度。我所知道的是它现在完全,所以任何遇到相同问题的人都应该尝试这个。

$pdf->Cell(WIDTH,HEIGHT,TEXT);

我也做了以下操作,不确定这是否有帮助,但我的脚本中有它。

$pdf->SetMargins(0, 0);
$pdf->cMargin = 0;