我正在创建一个学生管理系统,我希望能够生成一个pdf报告,该报告将在其自己的页面中包含每个学生的数据,即。 studentId,Math,English,Science,Class,totals,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
答案 0 :(得分:0)
遍历行并为每一行创建一个新页面。如何做到这完全取决于你创建pdf的内容。
答案 1 :(得分:0)
您可以将信息输出到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应该不会太困难。