2017-01-12 4 views
1

Je crée un pdf de 9 colonnes en utilisant mpdf qui montre une liste d'utilisateurs Dans chaque ligne, 1 colonne est utilisée pour la photographie. Mon problème est que je veux que les colonnes soient presque égales en largeur mais en résultat, j'obtiens des colonnes avec des largeurs différentes.La largeur des colonnes mpdf ne se corrige pas et augmente avec les données

J'ai essayé de définir CSS de table ainsi que par l'option mpdf, mais aucun d'eux n'a fonctionné. Mon code est comme sous:

$a='<style>@page { 
margin: 10pt; 
}</style>'; 
$a .= '<table autosize="1" border="1" class="atable" style="font-family:Arial"><tr> 
<th style="min-width: 60pt;max-width: 60pt; font-size:7pt">Sr.<br>No.</th> 
<th style="min-width: 60pt;max-width: 60pt; font-size:7pt">Admission No.<br>Boarder/DayScholar<br>Admit Class<br>Admit Date<br>Exit Class<br>Exit Date</th> 
<th style="min-width: 60pt;max-width: 60pt; font-size:7pt">Photograph</th> 
<th style="min-width: 60pt;max-width: 60pt; font-size:7pt">Student Details<br>[Student Name<br>Father Name<br>Father Occupation<br>Mother Name<br>Mother Occupation]</th> 
<th style="min-width: 60pt;max-width: 60pt; font-size:7pt">Date of Birth<br>Current Class<br>Current City<br>Board Roll No.<br>Percentage</th> 
<th style="min-width: 60pt;max-width: 70pt; font-size:7pt">Old Details<br>[Address<br>Father Email<br>Father Mobile]</th> 
<th style="min-width: 60pt;max-width: 75pt; font-size:7pt">Present Profile<br>(Alumi,<br>Ex-Student,<br>Current Student)</th> 
<th style="min-width: 60pt;max-width: 65pt; font-size:7pt">Contact Details<br>[Email Id<br>Mobile<br>Father Mobile<br>Facebook Id<br>Twitter Id<br>Linked In Id]</th> 
<th style="min-width: 60pt;max-width: 65pt; font-size:7pt">Remarks</th> 
</tr><tr>' 

//Here goes the data fetching php code followed by the below code 

<td style="font-size: 10pt !important; text-align:center;">' . ++$i . '</td> 
<td style="font-size:10pt !important; text-align:center;">' . $row['adm_no'] .'<br><font color="green">' . $row['d_b'] . '</font><br>' . $row['adm_class'] . '<br><font color="green">' . $fadmdate . '</font><br>' . $row['exit_class'] . '<br><font color="green">' . $fexit . '</font></td> 
<td style="font-size:10pt !important; text-align:center;">'. '<div id="testimage"><img src="' . $gdImage . '" width="60pt" /></div></td><td style="font-size:10pt !important; text-align:center;">'. $row['stu_name'] . 
    '<br><font color="green">' . $row['fat_name'] . '</font><br>' . $row['fat_occ'] . '<br><font color="green">' . $row['mot_name'] . '</font><br>' . $row['mot_occ'] . '</td> 
<td style="font-size:10pt !important; text-align:center;">'. 
    $fdob . '<br><font color="green">' . $row['stu_class'] . '</font><br>' . $row['cur_city'] . '<br><font color="green">' .$row['board_roll'] . '</font><br>' . $row['perc'] . '</td> 
<td style="font-size:10pt !important; text-align:center;">'. 
    $row['addr']. '<br><font color="green">' . $row['fat_email'] . '</font><br>' . $row['fat_mob'] . '</td> 
<td style="font-size:10pt !important; text-align:center;">'. 
    $cprofile .'</td> 
<td style="font-size:10pt !important; text-align:center;">' . $row['email_id'] .'<br><font color="green">' . $row['phone_no'] . '</font><br>' . $row['fb_id'] . '<br><font class="green">' . $row['twitter_id'] . '</font><br>' . $row['linkedin_id'] . '</td><td style="font-size:10pt !important; text-align:left;">SMS:<br><font color="green">Email:</font><br>FB:</td> 
</tr></table> 
<?php 
include("\mpdf\mpdf.php"); 
$mpdf=new mPDF('','A4'); 
$keep_table_proportions = TRUE; 
$mpdf->shrink_tables_to_fit=1; 
$mpdf->setFooter('Details ::: ' . date("d/m/Y") . ' :::   {PAGENO}/{nb}'); 
$mpdf->WriteHTML($a); 
$mpdf->Output('mytable.pdf', 'D'); 
exit; 

Même après réglage de la largeur max à 70pt, La colonne détails Old prend environ 25% de la largeur de la page grâce à laquelle d'autres colonnes sont écrasées mal et regard va bizarre et aussi le pied de page n'est plus visible.

Répondre

1

les opérations suivantes:

<table cellpadding="5px" autosize="1" border="1" width="100%" style="overflow: wrap"> 

ajouter ensuite les largeurs appropriées à votre e et td longue avec la taille de police appropriée, par exemple 8 à 10 pt. Puis, à la fin, modifiez votre code comme suit:

include("\mpdf\mpdf.php"); 
$mpdf=new mPDF('','A4'); 
$mpdf->simpleTables = true; 
$mpdf->packTableData = true; 
$keep_table_proportions = TRUE; 
$mpdf->shrink_tables_to_fit=1; 
$mpdf->setFooter('Birthday Details ::: ' . date("d/m/Y") . ' :::   {PAGENO}/{nb}'); 
$mpdf->WriteHTML($a); 
$mpdf->Output('mytable.pdf', 'D'); 
exit; 

Cela lso améliorer les performances. N'oubliez pas d'upvote si cela aide.

+1

Oui, il semble que l'approche a fonctionné parfaitement. Merci. – ITSagar