使用 mPDF 将 JSON table 转换为 PDF
Convert an JSON table to an PDF with mPDF
我正在尝试通过 mPDF 将 JSON 文件转换为 PDF,但我的问题是 JSON table 未显示在 HTML 运行 之后 php。仅显示一页空白 PDF。
编辑:
我更新了代码,所以它几乎可以工作。该代码创建了 table 但它没有显示所有 JSON 数据。
新建PHP
ob_start();
$json = file_get_contents($url);
$json_decoded= json_decode($json);
foreach ($json_decoded as $result) {
$html = '
<!DOCTYPE html>
<html>
<head>
<title>Convert JSON Data to HTML Table</title>
<link href="style.css" rel="stylesheet">
<meta charset="UTF-8">
</head>
<body >
<table>
<tr>
<th>driverno</th>
<th>name</th>
<th>objectno</th>
<th>tagId</th>
<th>lastScanDate</th>
</tr>
<tr>
<td>'.$result->driverno.'</td>
<td>'.$result->name.'</td>
<td>'.$result->objectno.'</td>
<td>'.$result->tagID.'</td>
<td>'.$result->lastScanDate.'</td>
</tr>
<tr>
<td>'.$result->driverno.'</td>
<td>'.$result->name.'</td>
<td>'.$result->objectno.'</td>
<td>'.$result->tagID.'</td>
<td>'.$result->lastScanDate.'</td>
</tr>
</table>
</body>
</html>
';
}
$mpdf->WriteHTML($html);
$mpdf->Output("demo.pdf", 'F');
$mpdf->Output();
?>
JSON
{
"driverno":1,
"name":"Aragorn",
"objectno":1,
"tagId":1,
"lastScanDate":"yesterday"
},
{
"driverno":2,
"name":"Legolas",
"objectno":2,
"tagId":2,
"lastScanDate":"today"
},
{
"driverno":3,
"name":"Gimmli",
"objectno":3,
"tagId":3,
"lastScanDate":"today"
},
{
"driverno":4,
"name":"Gandalf",
"objectno":4,
"tagId":4,
"lastScanDate":"today"
}
我得到了 JSON 文件的最后一个数据,没有标签 ID。
mPDF 不支持 Javascript 到这个程度。
您必须直接在 PHP 中使用 $table = json_decode($json, true)
解析 JSON,然后遍历它 foreach ($json as $row)
并构建 HTML table自己标记。
注意不要回显代码,而是将其构建为变量中的字符串 (see this SO answer)。
然后将 table HTML 的字符串传递给 $mpdf->WriteHtml()
的 mPDF。
我正在尝试通过 mPDF 将 JSON 文件转换为 PDF,但我的问题是 JSON table 未显示在 HTML 运行 之后 php。仅显示一页空白 PDF。
编辑: 我更新了代码,所以它几乎可以工作。该代码创建了 table 但它没有显示所有 JSON 数据。
新建PHP
ob_start();
$json = file_get_contents($url);
$json_decoded= json_decode($json);
foreach ($json_decoded as $result) {
$html = '
<!DOCTYPE html>
<html>
<head>
<title>Convert JSON Data to HTML Table</title>
<link href="style.css" rel="stylesheet">
<meta charset="UTF-8">
</head>
<body >
<table>
<tr>
<th>driverno</th>
<th>name</th>
<th>objectno</th>
<th>tagId</th>
<th>lastScanDate</th>
</tr>
<tr>
<td>'.$result->driverno.'</td>
<td>'.$result->name.'</td>
<td>'.$result->objectno.'</td>
<td>'.$result->tagID.'</td>
<td>'.$result->lastScanDate.'</td>
</tr>
<tr>
<td>'.$result->driverno.'</td>
<td>'.$result->name.'</td>
<td>'.$result->objectno.'</td>
<td>'.$result->tagID.'</td>
<td>'.$result->lastScanDate.'</td>
</tr>
</table>
</body>
</html>
';
}
$mpdf->WriteHTML($html);
$mpdf->Output("demo.pdf", 'F');
$mpdf->Output();
?>
JSON
{
"driverno":1,
"name":"Aragorn",
"objectno":1,
"tagId":1,
"lastScanDate":"yesterday"
},
{
"driverno":2,
"name":"Legolas",
"objectno":2,
"tagId":2,
"lastScanDate":"today"
},
{
"driverno":3,
"name":"Gimmli",
"objectno":3,
"tagId":3,
"lastScanDate":"today"
},
{
"driverno":4,
"name":"Gandalf",
"objectno":4,
"tagId":4,
"lastScanDate":"today"
}
我得到了 JSON 文件的最后一个数据,没有标签 ID。
mPDF 不支持 Javascript 到这个程度。
您必须直接在 PHP 中使用 $table = json_decode($json, true)
解析 JSON,然后遍历它 foreach ($json as $row)
并构建 HTML table自己标记。
注意不要回显代码,而是将其构建为变量中的字符串 (see this SO answer)。
然后将 table HTML 的字符串传递给 $mpdf->WriteHtml()
的 mPDF。