Используя PHP с TCPDF для извлечения данных (используя mysql) из базы данных и показывая их как .pdf-файл

На самом деле я новичок в TCPDF. Может ли кто-нибудь помочь мне отображать данные в .pdf . Я использую следующий код, и данные отображаются в виде общей веб-страницы. Я хочу отобразить его в .pdf .

 require_once('../config/lang/eng.php') require_once('../tcpdf.php') error_reporting(E_ALL) ; ini_set('display_errors', '1'); $con=mysql_connect("localhost","root",""); if(!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("ef_kabaadkhana"); $result = mysql_query("SELECT form_id,partner_name FROM ef_form_master_v1"); if (($result)) { echo "<table width='100%'><tr>"; if (mysql_num_rows($result)>0) { $i = 0; while ($i < mysql_num_fields($result)) { echo "<th>". mysql_field_name($result, $i) . "</th>"; $i++; } echo "</tr>"; while ($rows = mysql_fetch_array($result,MYSQL_ASSOC)) { echo "<tr>"; foreach ($rows as $data) { echo "<td align='center'>". $data . "</td>"; } } }else{ echo "<tr><td colspan='" . ($i+1) . "'>No Results found!</td></tr>"; } echo "</table>"; }else{ echo "Error in running query :". mysql_error(); } 

Вы также можете сделать это:

Прямо перед тем, если ((результат $)) вставить

 ob_start(); 

В конце вашего php-скрипта вставьте

 $html = ob_get_contents(); ob_end_clean(); 

То, что это делает, – это запуск вывода буфера вывода и захват всего, что вы эхо на экране, а затем сохраняет его в переменной $ html.

Затем вы просто передаете переменную $ html в функцию writeHTML () в tcpdf. Я уверен, что вы можете найти документацию tcpdf для примера создания pdf-файла. Кроме того, я частично отношусь к mPDF. Я думаю, что он имеет гораздо лучшую поддержку стилизации

Взгляните на демонстрации с официального сайта. http://www.tcpdf.org/examples.php

Вам просто нужно заменить все «эхо» на некоторую переменную следующим образом:

 echo "<table width='100%'><tr>"; //old $html_text .= "<table width='100%'><tr>"; //new 

И после этого просто приравниваем к переменной TCPDF $ html

 $html = $html_text; 

Remeber, не должно быть выхода (print, echo и т. Д.) До

 $pdf->Output('example_006.pdf', 'I'); 

Потому что вы увидите ошибку.

Измените все свои эхо-инструкции, вместо этого разместите свою разметку HTML в переменной. Затем используйте функцию writeHTML в TCPDF для вывода этой разметки в PDF. Имейте в виду, что tcpdf не очень хорошо обрабатывает все разметки. Табличные макеты, подобные вашим, обычно работают очень хорошо, но я обнаружил, что для всех ваших ячеек td в каждой строке обычно требуются явные настройки ширины для правильной работы.

РЕДАКТИРОВАТЬ:

Вот ваш код переработан для writeHTML:

 require_once('../config/lang/eng.php') require_once('../tcpdf.php') error_reporting(E_ALL) ; ini_set('display_errors', '1'); $con=mysql_connect("localhost","root",""); if(!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("ef_kabaadkhana"); $result = mysql_query("SELECT form_id,partner_name FROM ef_form_master_v1"); if (($result)) { $html = ''; $html .= "<table width='100%'><tr>"; if (mysql_num_rows($result)>0) { $i = 0; while ($i < mysql_num_fields($result)) { $html .= "<th>". mysql_field_name($result, $i) . "</th>"; $i++; } $html .= "</tr>"; while ($rows = mysql_fetch_array($result,MYSQL_ASSOC)) { $html .= "<tr>"; foreach ($rows as $data) { $html .= "<td align='center'>". $data . "</td>"; } } }else{ $html .= "<tr><td colspan='" . ($i+1) . "'>No Results found!</td></tr>"; } $html .= "</table>"; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // Set various pdf options $pdf->SetAuthor('John Doe'); // etc. // Now output the html $pdf->AddPage(); $pdf->writeHTML($html, true, 0); // Output the PDF to the browser $pdf->Output('somefile.pdf', 'D'); // the second option D forces the browser to download the PDF. Passing I will tell the browser to show it inline. }else{ echo "Error in running query :". mysql_error(); }