首页 > 解决方案 > Codeigniter TCPDF - 加载多个 PDF

问题描述

当前的问题:

当我点击“打印 PDF”时,它只显示“1”PDF。

我做了什么:

我在 URI 上设置了数组,这意味着它可以使用 foreach 循环 2 次,但现在的问题是 PDF 当前仅显示“1”时间

我需要的 :

允许 TCPDF 生成 2 pdf


创建这个线程是什么知道这个想法,我会尝试自己解决它

代码

<?php
foreach($invoice as $row){  

$body='HTML 
XXXXXXX
Table';




$pdf = new Pdf('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetTitle('Invoice');
$pdf->SetHeaderMargin(10);
$pdf->SetTopMargin(10);
$pdf->setFooterMargin(10);
$pdf->SetAutoPageBreak(true);
$pdf->SetAuthor('Invoice');
$pdf->SetDisplayMode('real', 'default');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

$pdf->AddPage();

$pdf->writeHTML($body, true, false, true, false, '');


$pdf->lastPage();

//$pdf->Write(5, $tnc);
$pdf->Output('InvoceOutput'.'\.pdf', 'I' );
}
?>

标签: phpcodeignitertcpdf

解决方案


您正在 for 循环中创建和输出 PDF,因此正在生成 2 个单独的 1 页长的 PDF。第二个 PDF 可能会覆盖第一个 PDF,留下一个 PDF 1 页长。

在 for 循环之外配置和输出 PDF 应该可以解决您的问题:

<?php
$pdf = new Pdf('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetTitle('Invoice');
$pdf->SetHeaderMargin(10);
$pdf->SetTopMargin(10);
$pdf->setFooterMargin(10);
$pdf->SetAutoPageBreak(true);
$pdf->SetAuthor('Invoice');
$pdf->SetDisplayMode('real', 'default');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

foreach($invoice as $row){
    $body='HTML 
    XXXXXXX
    Table';

    $pdf->AddPage();
    $pdf->writeHTML($body, true, false, true, false, '');
    $pdf->lastPage();

    //$pdf->Write(5, $tnc);
}

$pdf->Output('InvoceOutput'.'\.pdf', 'I' );
?>

推荐阅读