2011-11-08 131 views
0

我有一個PHP項目,我打開一個預製PDF,並通過PHP填充數據。我遇到的問題是其中一個文本元素沒有顯示出來。我將它放在PDF頁面的右下角。如果我稍微向左移動,它就會顯示出來。就好像有一些剪輯或其他東西。當使用FPDF/FPDI/TCPDF生成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,因此不會創建新頁面,而且我還調整了清零邊距。

回答

0

我已經用細胞來定位文本好運,由於某種原因,他們表現出了更準確和更容易使用比單純寫文字到文檔的工作:

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

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

+0

我實際上是在頁面上使用單元格作爲其他文本對象(通常當我需要確保文本在區域中居中對齊時)。一旦我將Text對象轉換爲單元格,一切似乎都可以正常工作。仍然不確定爲什麼其他方法不起作用。謝謝您的幫助。 –

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

嘗試以下操作:

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

可能會有點在遊戲後期...

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

如果降低它,則可以使文本更靠近頁面的邊緣。以下是原始行:

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

但如果你將其更改爲類似

$margin = 10/$this->k; 

這讓你更接近你的文檔的邊緣。