let print_student_html_in_table (hpr : string -> unit) 
    (paddl:paddress list) (color:string) (stu:student) = 
    (* Print the name and login *)
    hpr (Printf.sprintf "<tr bgcolor='%s'><td colspan='2'>\n<a href='student.html?login=%s'>%s</a></td><td>%s</td>\n" 
           color stu.login stu.name stu.pren);
    if (not(!nologin_mode)) then hpr (Printf.sprintf "<td>%s</td>\n" stu.login);
    if (not(!nogrades_mode)) then begin 
      (* Print each project line *)
      List.iter (fun padd -> try 
                   let t = H.get_assoc stu.teams padd in 
                     if (t.r == Zerothen begin
                       let grad = student_grade stu t.proj in 
                         if (grad >= 0.) then 
                           hpr (Printf.sprintf "<td colspan='%d'/>\n<td align='center'><font color='#999999'>%.1f</font></td>\n" 
                                  (if !do_assign_resp then 2 else 1) grad)
                         else
                           hpr (Printf.sprintf "<td colspan='%d'/>\n" 
                                  (if !do_assign_resp then 3 else 2))
                     end else begin
                       (* Print the responsibility if applicable *)
                       if (!do_assign_resp) then
                         hpr (Printf.sprintf "<td bgcolor='%s'>%s</td>"
                                (num_to_color t.n) (resp_to_full_string t.r));
                       (* Print the team *)
                       if (!export_type = HtmlJscptthen
                         hpr (Printf.sprintf "<td align='center'>\n<a href=\"team.html?projnum=%s&amp;groupnum=%d&amp;teamnum=%d\">%d</a></td>"
                                (pa_to_string t.proj) stu.group t.n t.n)
                       else
                         hpr (Printf.sprintf "<td align='center'>%d</td>" t.n);
                       (* Print the grade *)
                       let grad = student_grade stu t.proj in
                         if ( grad >= 0.) then begin
                           if ( List.length padd = 1) then
                             hpr (Printf.sprintf "<td align='center'>%.1f</td>\n" grad)
                           else
                             hpr (Printf.sprintf "<td align='center'>%s</td>\n" 
                                    (color_string_html (-1) (Printf.sprintf "%.1f" grad)))
                         end else hpr "<td/>\n";
                     end;
                     (* Case where the project does not exist for stu *)
                 with _ -> begin
                   let grad = student_grade stu padd in (* Get grade without team *)
                     if (!do_assign_resp) then 
                       hpr "<td/><td/>" else hpr "<td/>";
                     if ( grad >= 0.) then
                       hpr (Printf.sprintf "<td align='center'>%.1f</td>\n" grad)
                     else hpr "<td/>\n";
                 end;) paddl;
      (* Print the mean *)
      let mean = student_mean stu in
      let smin = if (mean >= 0.) then (Printf.sprintf "%.1f" mean) else "" in
        hpr (Printf.sprintf "<td align='center'>%s</td>" smin);
    end;
    hpr "</tr>\n"