diff --git a/application/libraries/admin/quexmlpdf.php b/application/libraries/admin/quexmlpdf.php
index bddda024520..04cb35204c3 100644
--- a/application/libraries/admin/quexmlpdf.php
+++ b/application/libraries/admin/quexmlpdf.php
@@ -242,7 +242,7 @@ class quexmlpdf extends pdf {
span.sectionTitle {font-size:18pt; font-weight:bold;}
span.sectionDescription {font-size:14pt; font-weight:bold;}
div.sectionInfo {font-style:normal; font-size:10pt; text-align:left; font-weight:normal;}
- td.questionnaireInfo {font-size:16pt; text-align:center; font-weight:bold;}
+ td.questionnaireInfo {font-size:14pt; text-align:center; font-weight:bold;}
";
/**
@@ -648,7 +648,7 @@ class quexmlpdf extends pdf {
* @var mixed Defaults to 5.
* @since 2010-10-29
*/
- protected $questionnaireInfoMargin = 20;
+ protected $questionnaireInfoMargin = 5;
/**
* Height of a response label
@@ -2302,92 +2302,89 @@ protected function drawSingleChoiceHorizontal($categories, $subquestions = array
$total = count($categories);
$currentY = $this->GetY();
- if ($total > $this->singleResponseHorizontalMax) //change if too many cats
+ if ($total > $this->singleResponseHorizontalMax) //change if too many categories
$rwidth = $this->singleResponseVerticalAreaWidthSmall;
else
$rwidth = $this->singleResponseVerticalAreaWidth;
$textwidth = ($this->getColumnWidth() - $this->skipColumnWidth) - ($rwidth * $total);
- //draw the header
+ if ($this->allowSplittingSingleChoiceHorizontal) $this->startTransaction(); //start a transaction
+
+ //draw the header
$this->drawSingleChoiceHorizontalHead($categories);
-
$currentY += $this->responseLabelHeight;
-
- if ($this->allowSplittingSingleChoiceHorizontal) $this->startTransaction(); //start a transaction
- for ($i = 0; $i < count($subquestions); $i++)
+
+ for ($i = 0; $i < count($subquestions); $i++)
{
- $s = $subquestions[$i];
-
- if ($this->allowSplittingSingleChoiceHorizontal && $this->pageBreakOccured)
- {
- $this->pageBreakOccured = false;
- $this->rollBackTransaction(true);
- $this->SetAutoPageBreak(false); //Temporarily set so we don't trigger a page break
- $this->fillPageBackground();
- $this->newPage();
- $this->drawSingleChoiceHorizontalHead($categories);
-
- //reset currentY
- $currentY = $this->GetY() + $this->responseLabelHeight;
-
- $i = $i - 2; //go back and draw subquestions on the new page
- }
- else
- {
- if ($this->allowSplittingSingleChoiceHorizontal)
- {
- $this->commitTransaction();
- $this->startTransaction(); //start a transaction to allow for splitting over pages if necessary
- }
-
- //Add box group to current layout
- if ($parenttext == false)
- $this->addBoxGroup(1,$s['varname'],$s['text']);
- else
- $this->addBoxGroup(1,$s['varname'],$parenttext . $this->subQuestionTextSeparator . $s['text']);
-
- //$html = "
";
- //$this->writeHTMLCell($this->getMainPageWidth(), $this->singleResponseAreaHeight, $this->getMainPageX(), $this->GetY(), $this->style . $html,0,1,true,true);
-
- //Draw background
- $html = "";
- $this->setBackground('question');
- $this->writeHTMLCell($this->getColumnWidth(), $this->singleResponseHorizontalHeight, $this->getColumnX(), $currentY, $this->style . $html,0,1,true,true);
- $this->setDefaultFont($this->responseTextFontSize);
-
- $this->MultiCell($textwidth,$this->singleResponseHorizontalHeight,$s['text'],0,'R',false,0,$this->getColumnX(),$currentY,true,0,false,true,$this->singleResponseHorizontalHeight,'M',true);
-
-
- //Draw the categories horizontally
- $rnum = 1;
- foreach ($categories as $r)
- {
- if ($total == 1) $num = 'only';
- else if ($rnum == 1) $num = 'first';
- else if ($rnum < $total) $num = 'middle';
- else if ($rnum == $total) $num = 'last';
-
- $bfilled = false;
- if (isset($s['defaultvalue']) && $s['defaultvalue'] !== false && $s['defaultvalue'] == $r['value'])
- $bfilled = true;
-
- $position = $this->drawHorizontalResponseBox(($this->getColumnX() + $textwidth + (($rnum - 1) * $rwidth)),$currentY, $num,false,false,($total > $this->singleResponseHorizontalMax),$bfilled);
-
- //Add box to the current layout
- $this->addBox($position[0],$position[1],$position[2],$position[3],$r['value'],$r['text']);
-
- $rnum++;
- }
-
- if (($this->GetY() - $currentY) > $this->singleResponseHorizontalHeight)
- $currentY = $this->GetY();
- else
- $currentY = $currentY + $this->singleResponseHorizontalHeight;
-
- $this->SetY($currentY,false);
-
- }
+ $s = $subquestions[$i];
+
+ //Add box group to current layout
+ if ($parenttext == false)
+ $this->addBoxGroup(1,$s['varname'],$s['text']);
+ else
+ $this->addBoxGroup(1,$s['varname'],$parenttext . $this->subQuestionTextSeparator . $s['text']);
+
+ //$html = "";
+ //$this->writeHTMLCell($this->getMainPageWidth(), $this->singleResponseAreaHeight, $this->getMainPageX(), $this->GetY(), $this->style . $html,0,1,true,true);
+
+ //Draw background
+ $html = "";
+ $this->setBackground('question');
+ $this->writeHTMLCell($this->getColumnWidth(), $this->singleResponseHorizontalHeight, $this->getColumnX(), $currentY, $this->style . $html,0,1,true,true);
+ $this->setDefaultFont($this->responseTextFontSize);
+
+ $this->MultiCell($textwidth,$this->singleResponseHorizontalHeight,$s['text'],0,'R',false,0,$this->getColumnX(),$currentY,true,0,false,true,$this->singleResponseHorizontalHeight,'M',true);
+
+ //Draw the categories horizontally
+ $rnum = 1;
+ foreach ($categories as $r)
+ {
+ if ($total == 1) $num = 'only';
+ else if ($rnum == 1) $num = 'first';
+ else if ($rnum < $total) $num = 'middle';
+ else if ($rnum == $total) $num = 'last';
+
+ $bfilled = false;
+ if (isset($s['defaultvalue']) && $s['defaultvalue'] !== false && $s['defaultvalue'] == $r['value'])
+ $bfilled = true;
+
+ $position = $this->drawHorizontalResponseBox(($this->getColumnX() + $textwidth + (($rnum - 1) * $rwidth)),$currentY, $num,false,false,($total > $this->singleResponseHorizontalMax),$bfilled);
+
+ //Add box to the current layout
+ $this->addBox($position[0],$position[1],$position[2],$position[3],$r['value'],$r['text']);
+
+ $rnum++;
+ }
+ if (($this->GetY() - $currentY) > $this->singleResponseHorizontalHeight)
+ $currentY = $this->GetY();
+ else
+ $currentY = $currentY + $this->singleResponseHorizontalHeight;
+
+ $this->SetY($currentY,false);
+
+ if ($this->allowSplittingSingleChoiceHorizontal && $this->pageBreakOccured)
+ {
+ $this->pageBreakOccured = false;
+ $this->rollBackTransaction(true);
+ $this->SetAutoPageBreak(false); //Temporarily set so we don't trigger a page break
+ $this->fillPageBackground();
+ $this->newPage();
+ $this->drawSingleChoiceHorizontalHead($categories);
+
+ //reset currentY
+ $currentY = $this->GetY() + $this->responseLabelHeight;
+
+ $i = $i - 1; //go back and draw subquestions on the new page
+ }
+ else
+ {
+ if ($this->allowSplittingSingleChoiceHorizontal)
+ {
+ $this->commitTransaction();
+ $this->startTransaction(); //start a transaction to allow for splitting over pages if necessary
+ }
+ }
}
}
@@ -2727,12 +2724,16 @@ protected function newPage($init = false)
$this->setBackground('empty');
$this->columnCP = 0; //reset column pointer
- }
+
+ }
else // move to a new column
{
$this->SetXY($this->getColumnX(),($this->cornerBorder + $this->cornerWidth));
}
$this->SetAutoPageBreak(true,$this->getMainPageX());
+
+ //after a new page was begun....page should not have already ended
+ $this->pageBreakOccured = false;
}
/**