MPdf не отображает PDF, вместо этого отображается ошибка загрузки PDF в Wordpress - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь отобразить таблицу html в формате PDF, используя MPDF - PDF Library, но в ней отображается сообщение «ошибка загрузки PDF».

То, что я пробовал: -

  1. Убедитесь, что перед открывающим тегом и после конечного тега PHP нет лишнего пробела.
  2. Удалены все коды Javascript и CSS на указанной странице c.
  3. Создана еще одна страница, состоящая только из MDPF-кода для создания и отображения PDF-файла из html.
  4. Наконец, попробовал другую библиотеку PDF, т.е. dompdf
  5. Установил плагин для просмотра PDF в Google Chrome Браузер
  6. Отключил PHP display_errors в wp-config. php файл wordpress
  7. Использованы ob_start и ob_clean. Но не уверен, что я использовал это правильно

Ничто из вышеперечисленного не сработало для меня, и результаты были такими же

Код ниже: -

  require_once __DIR__ . '/vendor/autoload.php';
  $mpdf = new \Mpdf\Mpdf();
$sql = "select  a.case_id as id, a.remarks ,a.caseNumber,c.fname,a.date,
a.NextDate,a.CaseType, a.courtName from  wp_cases a , wp_clients
 as c where   a.client_id=c.client_id and a.status=1";

    if ($results = $wpdb->get_results( $sql))
   { 
   //$echomsg="%PDF-";
    $echomsg= "<table  style=\"font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;\" class=\"table\">";
 $echomsg.= "<thead style=\"background-color:lightblue;\">
    <tr>
    <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\">No</th>
     <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\">Details</th>
     <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\"> Date</th>
     <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\">  Client Name</th>
     <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\"> Case Number</th>
      <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\">  CourtName</th>
       <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\">  Case Type</th>
        <th style=\" border: 1px solid #dddddd; text-align: center;padding: 8px;\">Next Date</th>

    </tr>
  </thead>
  <tbody>";
  //<th style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> delete</th>
  $c=1;
       foreach ($results as $result)
       { 
         $echomsg.= " <tr>
       <th style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->id</a></th>
        <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->remarks</a></td>
        <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->date</a></td>
       <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->fname</a></td>
       <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->caseNumber</a></td>
       <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->courtName</a></td>
       <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->CaseType</a></td>
        <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"cases?currcase_id=$result->id\">$result->NextDate</a></td>


       </tr>";
       // <td style=\" border: 1px solid #dddddd; text-align: left;padding: 8px;\"> <a href=\"payment?delpay_id=$result->id\"><button class=\"btn\"><i class=\"fa fa-trash\"></i></button></a></td>

        $c+=1;
       }
        $echomsg.= "</tbody>
      </table>";

     //ob_start();

//echo  $echomsg;

  $mpdf->SetTitle('Case');
$mpdf->SetAuthor('Afaf');
$mpdf->SetCreator('Afaf');
$mpdf->SetSubject('Case');
// WRITE HTML
$mpdf->WriteHTML($echomsg);
// OUTPUT, SHOW IN BROWSER BY DEFAULT
$mpdf->Output(); 


/*$dompdf = new Dompdf();
     $dompdf->loadHtml($echomsg);
      $dompdf->setPaper('A4', 'landscape');
      $dompdf->render();
      $dompdf->stream("Cases",array("Attachment"=>0)); */

/*ob_clean();
flush();
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='case.pdf'"); 
exit; */
   }  

То, что я пробовал, есть в виде комментария в коде.

Редактировать Открыл скачанный PDF с помощью блокнота. Там был следующий код: -

<!DOCTYPE html>
<html dir="rtl" lang="en-US" >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="https://gmpg.org/xfn/11">
<title>Cases &#8211; LawyerMgmt</title>
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="LawyerMgmt &raquo; Feed" href="https://oursite.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="LawyerMgmt &raquo; Comments Feed" href="https://oursite.com/comments/feed/" />
        <script type="text/javascript">
            window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/oursite.com\/wp-includes\/ 

PS: PDF-файл отображается только в браузере Microsoft Edge, но при загрузке с него отображается «Поврежденный файл»

Любая помощь будет принята с благодарностью.

...