php - 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' );
}
?>
解决方案
您正在 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' );
?>
推荐阅读
- javascript - jQuery 类选择器和 document.querySelectorAll 哪个性能更好?
- mysql - cPanel SSL ERROR 2026 (HY000): SSL connection error: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca
- sequelize.js - 用空值对填充的用户表进行排序,有什么问题
- mingw - C 预处理器(MinGW 的 cpp.exe)不产生输出
- html - 如何在矩形 div 上方制作三角形 div?
- azure - Terraform-如何避免使用单一状态文件进行破坏和创建
- c++ - 无法使用派生类访问类的私有成员的 C++ 代码
- android - 带有接口的 Android 存储库实现
- powershell - RDS 网关 > 使用 Powershell 更新资源授权策略
- spring-mvc - Send Data to HTML Template through Spring AOP?