簡體   English   中英

使用FPDF / FPDI / TCPDF生成PDF時文本被剪裁

[英]Text getting clipped when generating PDF using FPDF/FPDI/TCPDF

我有一個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,因此不會創建新頁面,並且我也調整了邊距。

游戲可能會有點晚......

我看了一下fpdf.php文件,看起來它增加了1cm的邊距。

如果你降低它,那么你可以讓文本更接近頁面的邊緣。 以下是原始行:

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

但如果你把它改成類似的東西

$margin = 10/$this->k;

這使您更接近文檔的邊緣。

請嘗試以下方法:

$pdf->SetAutoPageBreak('auto',0);

我有幸使用單元格來定位文本,出於某種原因,他們已經證明比簡單地將文本寫入文檔更准確,更容易使用:

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

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

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM