在新页面上的数据库中创建行的pdf

时间:2011-02-24 13:36:31

标签: php pdf-generation

我正在创建一个学生管理系统,我希望能够生成一个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

2 个答案:

答案 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应该不会太困难。