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

MPDF横向模式失效:CodeIgniter中始终生成纵向PDF怎么办?

解决CodeIgniter中mPDF无法生成横向PDF的问题

你遇到的始终生成纵向PDF的问题,核心原因是mPDF构造函数的参数传递方式错误。咱们来一步步分析和解决:

问题根源

你把mPDF构造函数的所有参数拼成了一个字符串'"en-GB-x","Letter-L","","",10,10,10,10,6,3',但mPDF的构造函数需要接收多个独立的参数,而不是一个整体字符串。这样传入的话,mPDF只会把整个字符串当作第一个参数(语言模式),后面的页面格式等参数完全没被正确解析,所以默认使用了纵向页面。

解决方案

你有两种方式可以修正这个问题:

方式1:正确传递构造函数参数

直接把每个参数单独传入mPDF的构造函数,第二个参数指定横向纸型(比如Letter-L表示横向的Letter纸):

public function downloadstatisticsWeek1() { 
    $data = []; 
    $html = $this->load->view('pdf/weeklyKeyIndicatorReportWeek1', $data, true); 
    $pdfFilePath = "Pcdom Statistics As of ". date('F d Y')." .pdf"; 
    $this->load->library('pcdom_pdf_converter'); 
    // 注意:这里去掉了外层的引号和逗号拼接,直接传递独立参数
    $pdfer = new mPDF('en-GB-x', 'Letter-L', '', '', 10, 10, 10, 10, 6, 3); 
    $pdfer->WriteHTML($html); 
    $pdfer->output($pdfFilePath, "D"); 
}

方式2:创建实例后强制切换横向

如果构造函数的参数设置不方便调整,也可以在创建mPDF实例后,调用AddPage()方法指定横向:

public function downloadstatisticsWeek1() { 
    $data = []; 
    $html = $this->load->view('pdf/weeklyKeyIndicatorReportWeek1', $data, true); 
    $pdfFilePath = "Pcdom Statistics As of ". date('F d Y')." .pdf"; 
    $this->load->library('pcdom_pdf_converter'); 
    $pdfer = new mPDF('en-GB-x', 'Letter', '', '', 10, 10, 10, 10, 6, 3); 
    // 添加这行代码,强制切换为横向页面
    $pdfer->AddPage('L'); 
    $pdfer->WriteHTML($html); 
    $pdfer->output($pdfFilePath, "D"); 
}

补充说明

Letter-L中的L是Landscape(横向)的缩写,对应的纵向是P(Portrait)。如果需要其他纸型的横向,比如A4横向,可以用A4-L代替Letter-L。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:05:52