最近有使用PHP生成PDF的场景,但目前发现 使用writeHTML 存入一个HTML时,无论是使用行内样式还是使用style标签进行定义,其margin和padding 都没有什么用处
我主要是table 里面嵌入div 对其进行parding和margin的属性指定,发现无法实现表格内的文字垂直居中对其 。不知道是我方法用错还是就是个坑 !!!记录一下
$pdf = new \TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
$PDF_MARGIN_LEFT = 20;
$PDF_MARGIN_TOP = 30;//留给页眉的空间
$PDF_MARGIN_RIGHT = 20;
$pdf->SetMargins($PDF_MARGIN_LEFT, $PDF_MARGIN_TOP, $PDF_MARGIN_RIGHT);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->setTitle('信息登记表');
$pdf->setSubject('信息登记表');
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 048', PDF_HEADER_STRING);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->AddPage();
$html = <<<HTM1
<style>
table{
width:100%;
font-size: 15px;
text-align: center;
}
td{
height: 50px;
}
.names{
margin:10px;
}
</style>
<h2 style="text-align: center;font-size: 20px">信息登记表</h2>
<table cellspacing="0" cellpadding="1" border="1">
<tr>
<td><p class="names">姓名</p></td>
<td><p>年龄</p></td>
<td><p>类型</p></td>
<td><p>性别</p></td>
<td><p>喜好</p></td>
<td><p>地址</p></td>
</tr>
<tr>
<td colspan="3"><p>是否材料</p></td>
<td colspan="3"><p>是</p></td>
</tr>
<tr>
<td colspan="3"><p>照片</p></td>
<td colspan="3"><p>照片</p></td>
</tr>
<tr>
<td colspan="3"><img height="150" src="http://ww.com/s.jpg" alt="" srcset=""></a> </td>
<td colspan="3"><img height="150" src="http://ww.com/s.jpg" alt="" srcset=""></a> </td>
</tr>
</table>
HTM1;
$pdf->SetFont('stsongstdlight', '', 8);
$pdf->writeHTML($html, true, false, false, false, '');
$res = $pdf->Output('/upload/1.pdf', 'S');
file_put_contents('/upload/1.pdf',, $res);