我正在尝试通过mPDF将JSON文件转换为PDF,但是我的问题是运行php后JSON表未显示在HTML中。仅显示一个空白的PDF页面。
编辑: 我更新了代码,因此几乎可以正常工作。该代码创建了表格,但并未显示所有的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"
}
我得到了没有tagID的JSON文件的最后数据。
答案 0 :(得分:0)
mPDF目前不支持Javascript。
您必须直接在PHP中使用$table = json_decode($json, true)
解析JSON,然后在foreach ($json as $row)
上循环并自己构建HTML表标记。
请注意不要回显代码,而应将其构建为字符串形式的变量(see this SO answer)。
然后使用$mpdf->WriteHtml()
将带有表HTML的字符串传递给mPDF。