'); } $paper = mdb2_single_assoc($db, "SELECT * FROM paper WHERE paper_id = %i", $_GET['paper_id']); if ($paper == NULL) { error_user('Geen papiersoort opgegeven', 'Labels kunnen alleen worden geprint op bekend papier.'); } if ($_GET['ppl_id'] != '') { $afkorting = mdb2_single_val($db, << {$herinfo['period_deadline']} JOIN $kldv.ppl ON ppl.ppl_id = ppl2grp2subj.ppl_id WHERE period_id = {$herinfo['period_id']} AND ppl.ppl_id = '%q' ORDER BY ppl_login EOQ , $_GET['ppl_id']); if (!$afkorting) error_user('Docent niet gevonden', 'Geselecteerde docent geeft geen les aan klassen die herkansingen opgeven via deze pagina'); $or = '1=0'; } else $or = '1=1'; $hers = mdb2_query($db, << {$herinfo['period_deadline']} JOIN $kldv.grp2subj ON grp2subj.grp_id = ppl2grp.grp_id AND grp2subj.subj_id = rex.subj_id JOIN $kldv.ppl2grp2subj ON ppl2grp2subj.grp2subj_id = grp2subj.grp2subj_id AND ppl2grp2subj.ppl_enter <= {$herinfo['period_deadline']} AND ppl2grp2subj.ppl_exit > {$herinfo['period_deadline']} JOIN $kldv.ppl2grp AS ppl2grp2 ON ppl2grp2.ppl_id = ppl.ppl_id AND ppl2grp2.ppl_enter <= {$herinfo['period_deadline']} AND ppl2grp2.ppl_exit > {$herinfo['period_deadline']} JOIN $kldv.grp ON grp.grp_id = ppl2grp2.grp_id JOIN $kldv.ppl AS doc ON ppl2grp2subj.ppl_id = doc.ppl_id JOIN $kldv.subj ON subj.subj_id = rex.subj_id WHERE period_id = {$herinfo['period_id']} AND grp_home = 1 AND (doc.ppl_id = '%q' OR $or) ORDER BY doc.ppl_login, subj_abbrev, grp_name, ppl.ppl_surname, ppl.ppl_forename, ppl.ppl_prefix EOQ , $_GET['ppl_id']); if (!($row = $hers->fetchRow(MDB2_FETCHMODE_ORDERED))) { if ($afkorting) error_user('Geen herkansingen gevonden', htmlenc($afkorting).' heeft op dit moment geen herkansers.'); else error_user('Geen herkansingen gevonden', 'Geen enkele leerling heeft op dit moment een herkansing opgegeven'); } function print_label($pdf, $baselineskip, $num, $klas, $docent, $desc, $leerling, $toets) { global $paper; assert($num < $paper['paper_num_x']*$paper['paper_num_y']); $row = (int)($num/$paper['paper_num_x']); $col = $num%$paper['paper_num_x']; $curr_x = ($paper['paper_origin_x'] + $paper['paper_step_x']*$col)/10.; $curr_y = ($paper['paper_origin_y'] + $paper['paper_step_y']*$row)/10.; $pdf->SetXY($curr_x, $curr_y); $pdf->Cell($paper['paper_window_x']/10., $baselineskip, $klas, 0, 1, 'L',0, 0, 1); $pdf->SetXY($curr_x, $curr_y); $pdf->Cell($paper['paper_window_x']/10., $baselineskip, $docent, 0, 1, 'R',0, 0, 1); $pdf->SetXY($curr_x, $curr_y+1.5*$baselineskip); $pdf->MultiCell($paper['paper_window_x']/10., $baselineskip, htmldec($desc), 0, 'L', 0, 1, '', '', 1, 1, 0, 0, 2*$baselineskip, '', 1); $pdf->SetY($pdf->GetY()+.5*$baselineskip); $pdf->SetX($curr_x); $pdf->Cell($paper['paper_window_x']/10., $baselineskip, $leerling, 0, 1, 'L',0, 0, 1); $pdf->SetX($curr_x); $pdf->Cell($paper['paper_window_x']/10., $baselineskip, htmldec($toets), 0, 1, 'L',0, 0, 1); } $pdf = new TCPDF('P', 'mm', $paper['paper_format']); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $mm_per_pt = 0.352777778; $baselinefactor = 1.2; $fontsize = 10*$mm_per_pt; $pdf->SetCellPadding(0); $pdf->SetMargins(0, 0, 0); $pdf->SetAutoPageBreak(0); $pdf->SetFont('Helvetica', '', $fontsize/$mm_per_pt); $pdf->AddPage(); $labelno = $_GET['start']; set_time_limit(120); do { if ($labelno == $paper['paper_num_x']*$paper['paper_num_y']) { $labelno = 0; $pdf->addPage(); } print_label($pdf, $baselinefactor*$fontsize, $labelno, $row[0], $row[2], $herinfo['period_desc'], $row[1], $row[3]); $labelno++; } while (($row = $hers->fetchRow(MDB2_FETCHMODE_ORDERED))); /* we'll send a .pdf file */ header("Content-type: application/pdf"); /* some red tape to avoid bugs and weird errormessages in IE */ header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header('Content-Disposition: inline; filename=labels.pdf;'); $pdf->Output(); ?>