2014-10-03 73 views
2

我有一些表單數據,提交後生成PDF。問題是PDF中表格的大小。如果我的表單中的某些字符串太長,則PDF生成錯誤。這是因爲桌子。它們具有靜態尺寸,所以如果字符串太長,表格無法容納它。我使用mPDF庫。如何防止使用mPDF和PHP在PDF中進行表格大小調整?

如何使這個表的大小動態變化,以便它們的大小根據字符串的長度而改變?

如果字符串{p}最長,那麼表格的寬度會減小。我想如果字符串{p}比表的寬度最長,那麼{p}應該在下一行寫出來,並且表的高度應該增加。

的屏幕截圖,如果在字段(名)的字符串短:

short string {p}

的屏幕截圖,如果在字段(名)的字符串長:

long string {p}

的屏幕截圖如果字符串在外地(名稱)很長:

very_long string

下面是代碼MPDF片段:

$mpdf=new mPDF('UTF-8','A4','','',20,15,48,25,10,10); 

$mpdf->shrink_tables_to_fit=1; 
$mpdf->keep_table_proportions = true; 
$mpdf->WriteHTML(generatePDF()); 
$mpdf->AddPage(); 
$mpdf->WriteHTML(generatePDF2()); 

$mpdf->Output(); 
exit; 

和片段HTML表格:

function generatePDF(){ 
    global $a,$b,$c,$d; 
    $html = getHTMLStyle().' 

<div style="text-align: left;"><span style="font-size: 11pt;font-weight: bold;">FORMULARZ KONSULTACJI<br />PROJEKTU PRAWA MIEJSCOWEGO<br /> W ZAKRESIE DZIAŁALNOŚCI STATUTOWEJ ORGANIZACJI POZARZĄDOWEJ*<br /><br /></span></div> 

<table class="items" width="100%" style="font-size: 9pt; border-collapse: collapse;" cellpadding="8"> 

<tr> 
<td width="5%">A</td> 
<td width="95%"><b>'.$a.'</b><br /><br /> '.$_POST['title'].'</td> 
</tr> 
+1

如果您解決了問題,請分享解決方案。 – 2015-02-10 09:30:31

+0

嗨,你是否設法解決這個問題? – tslid 2016-11-22 15:54:54

+0

mine using this http://stackoverflow.com/questions/23760018/mpdf-font-size-not-working/43996204#43996204 – 2017-05-16 08:42:40

回答

1

這裏:

<tr> 
<td width="5%">A</td> 
<td width="95%"><b>'.$a.'</b><br /><br /> '.$_POST['title'].'</td> 
</tr> 

嘗試使用固定表格寬度的值而不是百分比。例如:

<table class="items" width="950" style="font-size: 9pt; border-collapse: collapse;" cellpadding="8"> 

然後看看會發生什麼。

-1

確實很難找到問題,但答案很簡單。 表樣式=「溢出:包裝」閱讀源代碼之後:

elseif ($table['overflow']=='wrap') 
0

這是一個遲到的答案,但它是值得現在回答的。當表tr具有非常大的內容時,我也面臨同樣的問題。我嘗試了下面的解決方案,但沒有運氣。

$ mpdf-> shrink_tables_to_fit = 0;

然後,我已經把我的html結構從表格改成了div,它的工作效率很高。所以現在它的工作非常完美,大部分內容在頁面之間正確地展開,而不會重疊頁眉和頁腳。我希望它能幫助別人。歡呼聲

相關問題