создать pdf строк в базе данных на новой странице - PullRequest
0 голосов
/ 24 февраля 2011

Я создаю систему управления студентами и хочу создать отчет в формате PDF, который будет содержать данные о каждом студенте на его собственной странице, т.е. studentId, Math, English, Science, Class, итоги, Rank, myClass и myTotals.например, в таблице ниже я ожидаю, что PDF будет иметь 6 страниц. каждый из которых содержит только данные конкретного студента. как мне это сделать?

Заранее спасибо

studentId  Math  English  Science  Class  totals  Rank  myClass  myTotals
2          75    83       84       3p1    242     1     3p1      242
5          88    77       77       3p1    242     1     3p1      242
1          80    66       85       3p1    231     2     3p1      231
6          92    97       96       5p2    285     1     5p2      285
3          70    88       90       5p2    248     2     5p2      248
4          50    82       50       5p2    182     3     5p2      182

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Вы можете вывести информацию в файл LaTeX (при условии, что на машине он установлен).Я предполагаю, что вы получаете все данные ваших студентов из базы данных в массив массивов с именем students.Если вы используете MySQL или аналогичный для хранения данных, это должно быть достаточно просто.

Это должно сгенерировать файл report.tex и затем выполнить pdflatex для генерации файла report.pdf.

<?

$f = fopen('report.tex','w');
$out = '\documentclass{article}
\usepackage{a4wide}
\begin{document}
';
fwrite($f,$out);
//Example array
$students = array(array('studentId'=> 1, 'Math'=> 1, 'English'=> 5 , 'Science' => 5, 'Class' =>6, 'totals'=>6 , 'Rank'=>7 , 'myClass' =>7, 'myTotals'=>9));
foreach($students as $x){
    $out = '\begin{table}[htbp]'."\n".' \centering'."\n";
    $out .= '\begin{tabular}{|r|r|r|r|r|r|r|r|r|}'."\n";
    $out .= '\hline'."\n";
    $out .= 'studentId & Math & English & Science & Class & totals & Rank & myClass & myTotals \\\\ '."\n \\hline \n";

    $out .= "{$x['studentId']} & {$x['Math']} &  {$x['English']} & {$x['Science']} & {$x['Class']} & {$x['totals']} & {$x['Rank']} & {$x['myClass']} & {$x['myTotals']} ";
    $out .= '\\\\'."\n \\hline";
    $out .= '\end{tabular} '."\n".' \end{table}'."\n".'\newpage' ."\n";
    fwrite($f,$out);

}
fwrite($f,"\n".'\end{document}');
fclose($f);
echo (exec('pdflatex report.tex'));
echo "\ndone";
?>

Сценарий теперь работает правильно, который выдает правильный файл.С сервером отправлять вам PDF не должно быть слишком сложно.

0 голосов
/ 24 февраля 2011

цикл по строкам и создание новой страницы для каждой строки. Как это сделать, зависит от того, с чем вы создадите PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...