You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP的fPDF库中设置自定义页面尺寸并解决异常多页问题?

解决fPDF自定义页面尺寸设置问题

嘿,我来帮你搞定这个自定义页面尺寸的坑!你遇到的生成多页问题,根源其实不是尺寸数组的问题,而是边距设置和单位不匹配导致的——你之前设了SetTopMargin(50),但单位是英寸的话,50英寸远超过你设置的5英寸页面高度,fPDF只能自动分页来容纳,这才生成了多余的页面。

下面是正确的自定义页面尺寸配置方案,我给你拆解清楚:

核心要点说明

fPDF初始化时的第三个参数如果是数组,顺序是**[宽度, 高度]**,必须和第二个参数的单位(这里是in英寸)对应。另外,所有边距、内容尺寸的设置都要遵循同一个单位,别混用像素和英寸!

正确代码示例

<?php
require_once('fpdf/fpdf.php');

// 自定义纵向页面:宽度3英寸,高度5英寸
$pdf = new FPDF('P', 'in', [3, 5]);

// 设置合理的边距(单位:英寸)
$pdf->SetTopMargin(0.5);    // 上边距0.5英寸
$pdf->SetLeftMargin(0.3);   // 左边距0.3英寸
$pdf->SetRightMargin(0.3);  // 右边距0.3英寸
$pdf->SetAutoPageBreak(true, 0.3); // 自动分页的底部边距

$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
// 输出测试内容,Cell的高度用0.2英寸(和单位一致)
$pdf->Cell(0, 0.2, '这是3x5英寸的自定义页面', 0, 1);

// 如果需要6英寸高度,只需要把尺寸数组改成[3,6]即可
// $pdf = new FPDF('P', 'in', [3, 6]);

$pdf->Output();
?>

关键注意事项

  • 如果你需要横向页面,把第一个参数改成'L',此时fPDF会自动交换宽高的顺序,比如[3,5]横向的话,实际页面是5英寸宽,3英寸高
  • 不要在AddPage()里重复传错误的尺寸参数,否则会覆盖初始化的自定义设置
  • 内容输出时(比如Cell、MultiCell),高度参数也要用英寸单位,避免内容超出页面范围触发自动分页

内容的提问来源于stack exchange,提问作者Muhammad Ilyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:01:25