На самом деле я новичок в 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(); }