0

我有一个 PHP 项目,我正在打开一个预制的 PDF,并通过 PHP 用数据填充它。我遇到的问题是其中一个文本元素没有显示出来。我将它定位在 PDF 页面的右下角。如果我将它向左移动一点,它就会出现。就好像有一些剪辑或什么的。

我正在使用 TCPDF,因为我需要修改现有的 PDF,所以我还必须使用 FPDI 类。在我看来,FPDI 通常与 FPDF 集成在一起,所以我一直在使用 FPDF 方法来构建我的 PDF。好的,这是我的一些代码(或相关部分)......

$pdf = new PDF();
$pdf->AddPage( 'L', 'Letter' );
$pdf->SetAutoPageBreak(false);
$pdf->SetXY(261,200);
$pdf->Write(5, 'test');

当我定位值为 的文本时,文本右侧至少有一厘米的空白260。如果我将它再移动一个单位261,就像上面的代码一样,它就会消失。到目前为止,我可以将文本定位在页面底部,仅显示字母的上半部分,但是,我什至无法靠近页面的右侧,否则文本将完全消失。我已将 设置SetAutoPageBreak为 false,因此不会创建新页面,并且我还尝试将边距归零。

4

4 回答 4

2

游戏可能有点晚了……

我查看了 fpdf.php 文件,看起来它增加了 1 厘米的边距。

如果降低它,则可以使文本更靠近页面边缘。以下是原始行:

// Page margins (1 cm)
$margin = 28.35/$this->k;

但是如果你把它改成类似

$margin = 10/$this->k;

这使您更接近文档的边缘。

于 2013-09-19T06:04:04.817 回答
0

尝试以下操作:

$pdf->SetAutoPageBreak('auto',0);
于 2013-09-10T14:32:24.730 回答
0

Write() 用于流动文本(在内部它使用多个 Cell() 调用)。如果它到达右边距,则自动换行,下一个单词/字符将在左边距开始新行。该单词不会消失,但会显示在左下方区域。您可以看到使用这个简单脚本流动的字符:

$pdf = new FPDF();
$pdf->AddPage( 'L', 'Letter' );
$pdf->SetAutoPageBreak(false);
$pdf->SetFont('Helvetica');
$pdf->SetXY(261,200);
$pdf->Write(5, 't e s t');
$pdf->Output();
于 2011-11-09T12:30:32.510 回答
0

我很幸运使用单元格来定位文本,由于某种原因,它们显示出比简单地将文本写入文档更准确和更容易使用:

$pdf->SetXY(261,200);
$pdf->Cell(0,10,'My text',0,1, 'C');

文档:http ://www.fpdf.org/en/doc/cell.htm

于 2011-11-08T15:00:38.693 回答