使用 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。