Properly wrap signature lines when they reach a page break

Fix the signature page to only display once ALL the sections are complete
This commit is contained in:
james 2007-03-04 16:26:04 +00:00
parent 659bc11066
commit db600b5eb4
3 changed files with 45 additions and 2 deletions

View File

@ -475,20 +475,41 @@ class lpdf
function addTextX($text,$xpos)
{
$fontsize=pdf_get_value($this->pdf,"fontsize",0);
$lineheight=ceil($fontsize*1.2);
//we do it before here, to make sure we never get too low
if($this->yloc< (0.9 + $lineheight/72) )
$this->newPage();
pdf_show_xy($this->pdf,$text,$this->loc($xpos),$this->loc($this->yloc));
}
function nextLine()
{
$fontsize=pdf_get_value($this->pdf,"fontsize",0);
$lineheight=ceil($fontsize*1.2);
$this->yloc-=$this->currentFontSize*1.4/72;
//new page check can come after the nextline call
if($this->yloc< (0.9 + $lineheight/72) )
$this->newPage();
}
function hr()
{
$fontsize=pdf_get_value($this->pdf,"fontsize",0);
$lineheight=ceil($fontsize*1.2);
pdf_moveto($this->pdf,$this->loc($this->page_margin-0.25),$this->loc($this->yloc));
pdf_lineto($this->pdf,$this->loc($this->page_width-$this->page_margin+0.25),$this->loc($this->yloc));
pdf_stroke($this->pdf);
$this->yloc-=0.25;
//again we do it after the nextline call
if($this->yloc< (0.9 + $lineheight/72) )
$this->newPage();
}
function hline($x1,$x2)

View File

@ -192,7 +192,7 @@ echo "<table><tr><td>";
//signature page
echo "<tr><td>";
if($statusstudent=="complete" && $statusproject=="complete" && $statusmentor=="complete" && $statussafety=="complete")
if($statusstudent=="complete" && $statusproject=="complete" && $statusmentor=="complete" && $statussafety=="complete" && $statusemergencycontact=="complete" && $statustour=="complete")
{
if($sigfile)
echo "<a href=\"$sigfile\">";
@ -200,7 +200,7 @@ echo "<table><tr><td>";
echo error(i18n("No PDF generation library detected"),true);
}
echo i18n("Signature Page");
if($statusstudent=="complete" && $statusproject=="complete" && $statusmentor=="complete" && $statussafety=="complete")
if($statusstudent=="complete" && $statusproject=="complete" && $statusmentor=="complete" && $statussafety=="complete" && $statusemergencycontact=="complete" && $statustour=="complete")
echo "</a>";
echo "</td><td>";
echo i18n("Print");

View File

@ -129,6 +129,13 @@ $pdf->newPage();
foreach($studentinfoarray AS $studentinfo)
{
//we want to make sure the vspace, line, and text under the line dont
//get wrapped onto multiple pages, so make sure we have enough space for the whole thing before we
//start, and if we dont, make a new page. normal stop for footer is at 0.9, so 1.65 gives 0.75 inches
//which should be enough... i think :)
if($pdf->yloc< 1.65 )
$pdf->newPage();
$pdf->vspace($height['sigspace']);
//signature line
@ -162,6 +169,13 @@ $pdf->newPage();
foreach($studentinfoarray AS $studentinfo)
{
//we want to make sure the vspace, line, and text under the line dont
//get wrapped onto multiple pages, so make sure we have enough space for the whole thing before we
//start, and if we dont, make a new page. normal stop for footer is at 0.9, so 1.65 gives 0.75 inches
//which should be enough... i think :)
if($pdf->yloc< 1.65 )
$pdf->newPage();
$pdf->vspace($height['sigspace']);
//signature line
@ -192,6 +206,14 @@ $pdf->newPage();
$teacherbox=$r->text;
$pdf->addText($teacherbox);
//we want to make sure the vspace, line, and text under the line dont
//get wrapped onto multiple pages, so make sure we have enough space for the whole thing before we
//start, and if we dont, make a new page. normal stop for footer is at 0.9, so 1.65 gives 0.75 inches
//which should be enough... i think :)
if($pdf->yloc< 1.65 )
$pdf->newPage();
//we only need 1 teacher signature line, we can assume (maybe incorrectly) that both students
//have the same teacher.. if they are not the same, then they can get the best teacher to sign
//it doesnt matter.