我正在尝试使用FPDF创建一个日历PDF,如上图所示,但我的表格会相互显示。这是我得到的:
我正在使用此脚本:http://www.fpdf.org/en/script/script50.php 这允许我将HTML表格转换为PDF格式。
如果有人知道如何实现这一点或者有人知道另一个解决此问题的工具,我将非常感激。
答案 0 :(得分:0)
每次开始绘制表格时,您都可以使用setXY
功能移动页面上的当前位置。在每个表格行之后,当前位置将一直返回到左边距而不是之前的X位置,但您可以使用SetLeftMargin
来解决此问题。
以下示例使用您链接到的脚本。您可以调整数字或进行更智能的大小计算。我打印了相同的表12次以保持示例代码简短。
<?php
require('html_table.php');
$pdf = new PDF('L');
$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
$html = '<table border="1">
<tr><td width="100" height="50">cell 1</td><td width="100" height="50">cell 2</td></tr>
<tr><td width="100" height="50">cell 3</td><td width="100" height="50">cell 4</td></tr>
</table>';
// 'origin' is the top left of the January table:
$originX = 10;
$originY = 50;
for ($i = 0; $i < 12; $i++) {
// Move 70mm to the right after every month:
$x = $originX + ($i % 4) * 70;
// Move 60mm down after every 4 months:
$y = $originY + floor($i / 4) * 60;
$pdf->SetLeftMargin($x);
$pdf->SetXY($x, $y);
$pdf->WriteHTML($html);
}
$pdf->Output();
?>