FPDF报错求助:调用未定义方法PDF::_getpagesize()
可能的原因及修复步骤:
检查自定义PDF类的方法调用
如果你的代码里自定义了PDF类继承FPDF,确认是否直接调用了_getpagesize()这个内部方法。FPDF 1.85调整了内部方法的命名,将_getpagesize()改为了getPageSize()(注意大小写和下划线),把代码中所有$this->_getpagesize()替换为$this->getPageSize()即可。彻底清理旧版本FPDF文件
升级到1.85时,确保服务器上v1.84的旧文件(比如fpdf.php及相关类文件)被完全删除,只保留v1.85的完整文件。Ubuntu文件系统不会自动覆盖同名文件(若存在权限问题),手动检查include_path指向的目录,删除旧文件后重新上传v1.85的全部文件。修正文件包含的大小写问题
Ubuntu是大小写敏感系统,而XAMPP(Windows环境)不敏感。确认代码中包含FPDF的语句匹配实际文件名,比如:require('fpdf.php'); // 若实际文件是FPDF.php,此处会出错改成与实际文件名一致的大小写,比如
require('FPDF.php')。验证PHP环境扩展配置
确认Ubuntu服务器的PHP 7.4.33安装了必要扩展,比如mbstring、gd(若用到FPDF图片功能)。通过php -m命令查看已安装扩展,缺失的话执行sudo apt install php7.4-mbstring php7.4-gd安装。临时回退测试
如果以上方法无效,可暂时回退到FPDF 1.84版本,确认是否为1.85的兼容性问题。回退后正常的话,说明自定义代码与1.85的内部方法不兼容,需要针对性调整。
内容的提问来源于stack exchange,提问作者Ricardo Gonzalez

