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

Laravel 9 中Dompdf生成PDF异常:每个字母单独换行

Laravel Dompdf生成PDF每个字母单独换行(仅本地环境)的解决思路

以下是针对该问题的具体排查和解决步骤:

  • 检查Dompdf版本一致性
    虽然你没执行过composer命令,但本地composer.lock里的Dompdf版本可能和测试/生产环境不一致。先在本地执行composer show dompdf/dompdf查看版本,再对比测试环境的版本。如果版本不同,执行composer require dompdf/dompdf:线上版本号同步版本。

  • 重置Dompdf字体缓存
    本地字体缓存损坏可能导致渲染异常。找到Laravel项目中Dompdf的字体缓存目录(一般是storage/framework/cache/dompdf或storage/app/dompdf),删除该目录下的所有文件,然后重新生成PDF。
    同时可以在PDF视图的CSS里强制指定系统通用字体,避免自定义字体加载失败:

    body {
        font-family: "Arial", "Helvetica", sans-serif;
    }
    
  • 清理Laravel视图与应用缓存
    本地视图编译缓存可能存在异常,执行以下命令清除:

    php artisan view:clear
    php artisan cache:clear
    

    之后重新生成PDF测试。

  • 检查PHP扩展配置
    Dompdf依赖GD或Imagick扩展处理文本渲染,本地扩展版本或启用状态可能和线上不同:

    1. 运行php -m查看GD、Imagick是否已启用;
    2. 对比本地与线上的phpinfo()输出,确认扩展版本差异;
    3. 尝试切换渲染后端,在config/dompdf.php中修改DOMPDF_ENABLE_IMAGICK的值(true/false),再测试。
  • 排查视图模板的CSS问题
    虽然线上正常,但本地环境可能对某些CSS属性解析不同:

    • 检查容器元素是否设置了过窄的宽度,或者误加了word-break: break-all、white-space: pre这类强制换行的属性;
    • 简化视图模板,先输出一段普通文本(比如<p>测试文本内容</p>),看是否还会出现字母换行,逐步定位问题代码块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:52:17