4

我在 CodeIgniter 中使用 mPDF。

这是我的库(pdf.php)

class pdf {
    function pdf()
    {
        $CI = & get_instance();
        log_message('Debug', 'mPDF class is loaded.');
    }

    function load($param=NULL)
    {
        include_once APPPATH.'/third_party/mpdf/mpdf.php';
        if ($params == NULL)
        {
            $param = '"en-GB-x","A4","","",10,10,10,10,6,3,"L"';
        }
        return new mPDF($param);
    }
}

这是我的控制器

$filename = 'qwerty';
//...
// As PDF creation takes a bit of memory, we're saving the created file in /downloads/reports/
$pdfFilePath = FCPATH."reports\\"   . $filename . ".pdf";
//$data['page_title'] = 'Hello world'; // pass data to the view
for($i=0;$i>=0;$i++)
{
    if(file_exists($pdfFilePath) == TRUE)
    {
        $pdfFilePath = FCPATH."reports\\"   . $filename . $i . ".pdf";
    } else {
        break 1;
    }
}
ini_set('memory_limit','32M');
$html = $this->load->view('certificate/certificate', $isi,TRUE); // render the view into HTML
$this->load->library('pdf');
$pdf = $this->pdf->load($param);
\$pdf = $this->pdf->load();
$pdf->SetFooter($_SERVER['HTTP_HOST'].'|{PAGENO}|'.date(DATE_RFC822));
$pdf->WriteHTML($html);
$pdf->Output($pdfFilePath, 'F'); // save to file because we can

即使使用该配置($param),结果仍然给我肖像文件,因此,里面的 CSS 相当混乱。

我应该怎么办?

4

5 回答 5

12

我的名字是 Rhonald Brito,这是我第一次来这里,我使用 Codeigniter 和 MPDF 大约有 1 年的时间,在这里我让你知道我的代码:

public function Make_PDF($view, $data, $file_name) {
    $html = $this->load->view($view, $data, true);
    $this->mpdf = new mPDF();
    $this->stylesheet = file_get_contents('css/style.css');
    $this->mpdf->AddPage('L', // L - landscape, P - portrait
            '', '', '', '',
            30, // margin_left
            30, // margin right
            30, // margin top
            30, // margin bottom
            18, // margin header
            12); // margin footer
    $this->mpdf->WriteHTML($html);
    //$this->mpdf->Output($file_name, 'D'); // download force
    $this->mpdf->Output($file_name, 'I'); // view in the explorer

    // for more information rhonalejandro@gmail.com
}
于 2013-10-09T14:21:49.830 回答
4

在构造函数中将格式设置为“A4-L”。

于 2013-12-20T10:57:26.057 回答
3

创建新 PDF 时,使用以下设置将其设置为横向

$mpdf = new mPDF('utf-8', 'L');

希望这可以帮助

更多信息在这里

于 2013-07-30T12:58:35.417 回答
1

我使用与您相同的代码,并在我的上添加了 Rhonald Brito 的代码。它运作良好

 $pdf->AddPage('L', // L - landscape, P - portrait
        '', '', '', '',
        30, // margin_left
        30, // margin right
        30, // margin top
        30, // margin bottom
        18, // margin header
        12); // margin footer
于 2013-11-06T03:11:56.427 回答
0

在阅读了将 mPDF 与 CodeIgniter一起使用以查看在何处传递我的参数并应用 Pooshonk 建议的参数之后,我得到了将所有页面设置为横向模式的预期效果,其语法在我的 Codeigniter 项目的帮助程序中适合 mPDF。

$CI = get_instance();
$CI->load->library('pdf');
$html = $CI->load->view($templatePath, $dataArray, true);
$pdf = $CI->pdf->load('utf-8', 'L');

ps 在我的 CI 项目中对 mPDF6.0 进行了更多的实验后,我发现传递true具有相同的效果。我认为它允许 mPDF 自动确定所提供数据的更合适的方向。如果这是真的,它会更灵活,但可能还需要更多处理(当我知道我总是希望这个特定模板的横向方向时)。

$pdf = $CI->pdf->load(true);
于 2019-10-08T00:03:09.193 回答