如何用PHP和SQL在FPDF中实现每页显示两张图片?
解决FPDF每页显示两张图片的问题
你的问题出在每次循环都调用了AddPage(),导致每一张图片都单独占一页。要实现每页两张,需要调整页面添加逻辑和图片位置:
修改后的代码
$id = $_GET['id']; $stmti = $database->prepare("SELECT * FROM inv_images WHERE id = :id"); $stmti->bindParam(':id',$id); $stmti->execute(); $imageList = $stmti->fetchAll(); $totalImages = count($imageList); // 遍历图片,每两张处理一次 for ($i = 0; $i < $totalImages; $i += 2) { $pdf->AddPage(); // 显示第一张图片(上半页) $pdf->Image('dealers_picture/'.$imageList[$i]['name'], 30, 30, 160, 110); // 如果还有第二张图片,显示在下半页 if ($i + 1 < $totalImages) { // 调整y坐标,让图片在下方,可根据需求修改数值 $pdf->Image('dealers_picture/'.$imageList[$i+1]['name'], 30, 150, 160, 110); } }
关键说明
- 用步长为2的
for循环替代foreach,每一轮处理一页的两张图片 - 仅在每组图片开始时调用
AddPage(),避免重复创建页面 - 第二张图片调整
y坐标(示例中设为150),确保和第一张不重叠,可根据实际排版需求修改该值 - 增加数组越界判断,避免图片总数为奇数时出现报错
内容的提问来源于stack exchange,提问作者bricas30
相关产品推荐
相关产品推荐

