[英]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');
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.