0

我正在尝试将文本写入 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); 

当我使用字体大小 pt 12 并编写文本时,我得到以下信息:

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

在此处输入图像描述

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

在此处输入图像描述

以上看起来我可以轻松地将 7.5 点添加到 Y 并且很好。

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

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

在此处输入图像描述

谁能帮我弄清楚如何中和它以至少使它成为这样,如果我将我的 XY 设置为一个数字,无论字体大小如何,它都会将它放在某个位置?我尝试了不同的pdf,它的工作原理都是一样的。

编辑:

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

4

2 回答 2

0

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

我认为主要问题是没有固定的宽度和高度。我所知道的是它现在可以完美运行,因此遇到相同问题的任何人都应该尝试一下。

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

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

$pdf->SetMargins(0, 0);
$pdf->cMargin = 0;
于 2015-02-25T23:11:57.467 回答
0

您只需将行高定义为零。因此,文本在 0 附近垂直“居中”。

文本的边界框

常见的行高是:

$pdf->Write($pdf->FontSize * 1.2, "Hi");
于 2015-01-26T13:24:31.353 回答