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

解决FPDF库生成Avery 5160标签时的空白页问题

问题根源

你手动维护的行列计数($x、$y变量)和PDF_Label内置的Add_Label()方法逻辑冲突了。这个方法本身已经自动处理标签的换行、换列和分页,你额外加的判断会重复触发AddPage(),导致每生成一个标签就多创建空白页,最终出现大量空白偶数页。

解决方案

删掉所有手动管理$x、$y的代码,完全交给Add_Label()处理分页逻辑。修改后的代码如下:

// SESSION Stuff here
} else {
    require_once('inc/pdf_label.php'); // extends FPDF
    $pdf = new PDF_Label('5160');
    $pdf->AddPage();
    $pdf->SetFont('Helvetica', '', 10);
    $pdf->SetMargins(0, 0);
    $pdf->Footer(false);
    $pdf->Header(false);
    $pdf->SetAutoPageBreak(false);
    // get DB table info to print labels
    $sql = "SELECT * FROM `my_table` WHERE `delivery_format`='Postal' && `membership_expires` >= '" . $ninety_days . "' ORDER BY `name_merge` ASC";
    if(!$result = $xxxx_db->query($sql)) {
        die("There was an error running the query [" . $xxxx_db->error . "]");
    }
    while($row = $result->fetch_assoc()) {
        $dates = "Expires:" . date('n/j/y', strtotime($row['membership_expires'])) . " Joined:" . date('n/j/y', strtotime($row['signup_date']));
        $text = sprintf("%s\n%s\n%s\n%s %s %s",
            $dates,
            $row['name_merge'],
            $row['street'],
            $row['city'],
            $row['state'],
            $row['zip']);
        $pdf->Add_Label($text);
    }
    $pdf->Output('my_labels', 'I');
}
补充说明

Avery 5160标签是3列×10行的布局,PDF_Label的Add_Label()方法会自动按顺序填充标签:填满一行自动换列,填满一页自动新建页面。你之前的手动计数相当于重复执行了分页操作,这才导致了大量空白页的出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:58:35