我使用DOMPDF生成了For the Following表的PDF文件。但是,在生成pdf时,它只显示表格的前15行。
注意:我在表格中使用了样式 - break-inside:avoid;
i have attached the HTML coding of the table in the fiddle.
答案 0 :(得分:0)
关于你的文档,我可以给出的主要建议是摆脱包装表。如果任何特定的表格单元格超出页面大小,您将遇到一个相当讨厌的bug。幸运的是,对于您的文档,您不需要该外表,因为它所做的就是包装您的实际内容以提供间距。
而不是:
<table align="left" cellpadding="0" cellspacing="0" style="margin:5px; page-break-inside: avoid;" width="100%">
<tr>
<th class="head">Heading</th>
</tr>
<tr>
<td style="border:1px solid; page-break-inside: avoid;" class="border-top border-left border-right border-bottom">
<!-- invoice table -->
</td>
</tr>
</table>
试试这个:
<div style="margin:5px;">
<div class="head">Heading</div>
<div style="border:1px solid;" class="border-top border-left border-right border-bottom">
<!-- invoice table -->
</div>
</div>
我更新了你的小提琴:https://jsfiddle.net/o4ga8uze/1/
就阻止表分页而言...... 您没有包含对所有样式表的实际参考,因此很难提供很多指导。我可以说的第一件事是,由于你的表就是页面上的所有内容(至少在你的样本中),它必须有足够低的行数才能不需要分页。
我注意到您的参考Bootstrap 2.3.2,所以我此时也会注意dompdf doesn't work all that well with bootstrap。您可以尝试设置足够高的DPI,以便dompdf能够适应页面上的更多内容。
DOMPDF_DPI
配置常量设置为例如300。$dompdf->set_option('dpi', 300);
最后,删除page-break-inside: avoid;
样式。对于超出页面大小的内容,尤其是表格,这可能会特别成问题。