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

WordPress环境下使用FPDF输出大量文本时PDF空白问题

FPDF在WordPress中生成PDF过多文本时空白的问题解决

问题描述

在WordPress环境中使用FPDF库生成PDF时,当输出文本量增加(取消注释代码中第10行文本后),PDF显示为空白页。本地纯PHP环境测试相同代码可正常运行,仅服务器的WordPress环境出现此问题。

原测试代码

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$fileIncPath=getcwd();
require_once("$fileIncPath/wp-content/fpdf/fpdf.php");
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetAutoPageBreak(false);
$pdf->SetFont('Arial','',10, true);
$pdf->Text(40,50,'Hallo Test auf Seite 1!', 0, 1);
$pdf->SetFont('Arial','',10, true);
$pdf->Text(40,60,'Hallo Test auf Seite 1!', 0, 1);
$pdf->SetFont('Arial','',10, true);
$pdf->Text(40,70,'Hallo Test auf Seite 1!', 0, 1);
$pdf->SetFont('Arial','',10, true);
$pdf->Text(40,80,'Hallo Test auf Seite 1!', 0, 1);
$pdf->SetFont('Arial','',10, true);
$pdf->Text(40,90,'Hallo Test auf Seite 1!', 0, 1);
//$pdf->SetFont('Arial','',10, true);
//$pdf->Text(40,100,'Hallo Test auf Seite 1!', 0, 1);
$pdf->SetFont('Arial','',10, true);
$pdf->Text(40,190,'Hallo Test auf Seite 1!', 0, 1);
$pdf->Output('I', 'test.pdf');
?>

问题原因分析

  1. WordPress输出缓冲干扰:WordPress默认开启输出缓冲,若缓冲中存在空格、换行或插件/主题输出的隐形字符,会破坏PDF文件结构,文本量少时未触发异常,量多则直接导致空白。
  2. PHP内存限制不足:服务器PHP内存阈值低于生成大文本PDF所需,内存耗尽后PDF生成失败。
  3. 路径加载不可靠:getcwd()返回的服务器路径可能与预期不符,导致FPDF库加载异常,文本量增加时暴露问题。
  4. 内容超出页面范围:SetAutoPageBreak(false)关闭了自动分页,若文本位置超出页面尺寸,会导致PDF渲染异常。

解决步骤

  1. 清除输出缓冲,确保纯净流
    在代码最顶部添加缓冲清理代码,同时移除PHP闭合标签?>避免输出空白字符:
<?php
ob_clean(); // 清除所有前置输出缓冲
error_reporting(E_ALL);
ini_set('display_errors', 1);
// 后续代码不变
  1. 修正FPDF加载路径
    用WordPress内置常量替代getcwd(),确保路径绝对可靠:
require_once(ABSPATH . 'wp-content/fpdf/fpdf.php');
  1. 调整PHP内存限制
    在代码开头或wp-config.php中增加内存配额:
ini_set('memory_limit', '256M'); // 按需调整数值
  1. 启用自动分页或调整内容位置
    关闭SetAutoPageBreak(false),启用自动分页避免内容溢出:
$pdf->SetAutoPageBreak(true, 10); // 底部留10mm边距

或改用MultiCell()函数替代Text(),自动处理换行与分页:

$pdf->MultiCell(0, 10, 'Hallo Test auf Seite 1!', 0, 'L');
  1. 处理字符编码(若有非ASCII字符)
    对UTF-8文本转码适配FPDF:
$pdf->Text(40,100,utf8_decode('Hallo Test auf Seite 1!'), 0, 1);

验证

修改代码后取消注释文本行,重新生成PDF。若仍异常,查看服务器PHP错误日志定位具体报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 13:16:14