我正在使用 fpdf 生成 pdf 发票。
有些发票包含很多项目,详细信息需要进入第二页。但是,我需要在第一页上显示总数和其他详细信息。
现在,如果我可以像这样添加新页面: $pdf->AddPage();
但是,这会将所有内容都放入第二页,无论在该语句之后是什么。
似乎无法为写入或单元格方法指定页面。
渲染和计算有点复杂,因此不想存储到临时数组中并在第一个页面完全渲染后显示。
谢谢。
最佳答案
我有一个非常相似的问题,我继续将函数添加到类中:
function SetPage($num) {
$this->page = $num;
}
这完全符合您的预期。但是,当您尝试返回下一页时,您需要明确设置它或添加到 Cell() 功能。这是它添加页面的地方:
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
这会检查 AcceptPageBreak 以及页面的高度是否明显小于我们停留在页面上时的最终位置。我所做的是在这里添加一个条件来检查下面是否有另一个页面。如果有,我没有添加新页面,而是继续将我的 Y 设置为我的边距并使用上述功能访问该页面。因此:
if ($this->page < count($this->pages)) {
$this->SetPage(($this->page)+1);
$this->y = .5;
}
如果您不喜欢乱用 FPDF,那么这可能不适合您,但我在解决这个问题后意识到实际上该脚本很容易导航并且为简单改进留下了很大的空间。请注意,除了检查上面的另一页之外,您还可以添加一个您可以调用的变量,该变量将临时告诉脚本您不添加页面,而是跳转到下一页。
关于php - fpdf - 返回上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609194/