如何通过mPDF将信息导出到一个单独页面的pdf文件中
Posted
技术标签:
【中文标题】如何通过mPDF将信息导出到一个单独页面的pdf文件中【英文标题】:How to export information into one pdf file of separate page by mPDF 【发布时间】:2021-08-03 18:33:18 【问题描述】:我正在尝试使用 mPDF、php 和 mysql 将数据导出为 PDF。 例如,我想将 10 个学生的信息导出到 PDF 到一个文件中,每个学生的信息到每个页面,总共 10 页。但是我下面的代码只为每个页面生成相同的信息。
我尝试了下面的代码,但只显示了一页。
<?
$path = (getenv('MPDF_ROOT')) ? getenv('MPDF_ROOT') : __DIR__;
ob_clean();
require_once $path . '/vendor/autoload.php';
// size in mm
$mpdf = new \Mpdf\Mpdf([
'margin_left' => 25.4,
'margin_right' => 25.4,
'margin_top' => 38.1,
'margin_bottom' => 31.75,
'margin_header' => 0,
'format' => 'A4',
'orientation' => 'P',
'margin_footer' => 0
]);
$mpdf->SetTitle("info");
$mpdf->SetAuthor("Jack");
$mpdf->showWatermarkImage = true;
$mpdf->SetWatermarkText("");
$mpdf->showWatermarkText = true;
$mpdf->autoPageBreak = true;
$mpdf->watermarkTextAlpha = 0.1;
$mpdf->SetDisplayMode('fullpage');
$html = '
<html>
<head>
<style>
</style>
</head>
<body style="background: transparent url(ppp.jpg) repeat fixed right top; background-color:#ccffff; ">
';
$number = count(array_filter($_POST['eid']));
for($ii=0; $ii<$number; $ii++)
$query = "SELECT
`name`, `title`
FROM `p` , `x`
WHERE `p`.`id`=`x`.`id` AND `x`.`id`='".mysqli_real_escape_string($connect, $_POST["eid"][$ii])."'
GROUP BY `x`.`id` ";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_array($result))
$name= $row['name'];
$title = $row['title'];
$html .= '
<table border=1 ellspacing="5" style="border-collapse: collapse; ">
<tr>
<td align="left" >
Name :
</td>
<td align="center" >
'.$name.'
</td>
</tr>
<tr>
<td align="left" >
Title :
</td>
<td align="center" >
'.$title.'
</td>
</tr>
</table>
</body>
</html>
';
$mpdf->WriteHTML($html);
$fname='Report.pdf';
$mpdf->Output($fname, 'I');
我正在从另一个页面发送 id
<input type="hidden" value="<?PHP echo $cell['id'];?>" name="eid[]" />
我想在每个单独的页面中为唯一的学生添加姓名和职务。如果是 10 个学生,那么它应该添加一个 10 页的文件。
谁能给我一些建议,拜托。
【问题讨论】:
您确认$_POST["eid"][$ii]
包含唯一值吗?尝试echo
查询字符串进行确认。我建议更改您的查询语句。您实际上可以使用 MySQL IN()
函数执行一次。
感谢 NcXNaV。我已经解决了我的问题。请看我的解决方案。
【参考方案1】:
我已经解决了这个问题。这是位置的问题,我已经使用并解决了如下代码的问题。
</body>
</html>
';
$mpdf->WriteHTML($html);
$fname='Report.pdf';
$mpdf->Output($fname, 'I');
到
</body>
</html>
';
$mpdf->WriteHTML($html);
$fname='Report.pdf';
$mpdf->Output($fname, 'I');
【讨论】:
以上是关于如何通过mPDF将信息导出到一个单独页面的pdf文件中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中使用 mPDF 从现有 PDF 将每个页面创建为 PDF