Преобразование таблицы JSON в PDF с помощью mPDF - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь преобразовать файл JSON в PDF через mPDF, но моя проблема в том, что таблица JSON не отображается в HTML после запуска php.Отображается только одна пустая страница 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" 
 }

Я получаю последние данныефайл JSON без tagID.

1 Ответ

0 голосов
/ 22 января 2019

mPDF не поддерживает Javascript до такой степени.

Вы должны проанализировать JSON напрямую в PHP с помощью $table = json_decode($json, true), а затем выполнить цикл по нему foreach ($json as $row) и самостоятельно создать разметку таблицы HTML.

Будьте осторожны, чтобы не повторить код, а построить его как строку в переменной ( см. Этот ответ SO ).

Передать строку с таблицей HTML вmPDF с $mpdf->WriteHtml() затем.

...