/** * tag : INPUT * mode : OPEN * * @param array $param * @return boolean */ protected function _tag_open_INPUT($param) { if (!isset($param['name'])) { $param['name'] = 'champs_pdf_' . (count($this->_lstField) + 1); } if (!isset($param['value'])) { $param['value'] = ''; } if (!isset($param['type'])) { $param['type'] = 'text'; } $param['name'] = strtolower($param['name']); $param['type'] = strtolower($param['type']); // the type must be valid if (!in_array($param['type'], array('text', 'checkbox', 'radio', 'hidden', 'submit', 'reset', 'button'))) { $param['type'] = 'text'; } if (isset($this->_lstField[$param['name']])) { $this->_lstField[$param['name']]++; } else { $this->_lstField[$param['name']] = 1; } $this->parsingCss->save(); $this->parsingCss->analyse('input', $param); $this->parsingCss->setPosition(); $this->parsingCss->fontSet(); $name = $param['name']; $x = $this->pdf->getX(); $y = $this->pdf->getY(); $f = 1.08 * $this->parsingCss->value['font-size']; $prop = $this->parsingCss->getFormStyle(); switch ($param['type']) { case 'checkbox': $w = 3; $h = $w; if ($h < $f) { $y += ($f - $h) * 0.5; } $checked = isset($param['checked']) && $param['checked'] == 'checked'; $this->pdf->CheckBox($name, $w, $checked, $prop, array(), $param['value'] ? $param['value'] : 'Yes', $x, $y); break; case 'radio': $w = 3; $h = $w; if ($h < $f) { $y += ($f - $h) * 0.5; } $checked = isset($param['checked']) && $param['checked'] == 'checked'; $this->pdf->RadioButton($name, $w, $prop, array(), $param['value'] ? $param['value'] : 'On', $checked, $x, $y); break; case 'hidden': $w = 0; $h = 0; $prop['value'] = $param['value']; $this->pdf->TextField($name, $w, $h, $prop, array(), $x, $y); break; case 'text': $w = $this->parsingCss->value['width']; if (!$w) { $w = 40; } $h = $f * 1.3; $prop['value'] = $param['value']; $this->pdf->TextField($name, $w, $h, $prop, array(), $x, $y); break; case 'submit': $w = $this->parsingCss->value['width']; if (!$w) { $w = 40; } $h = $this->parsingCss->value['height']; if (!$h) { $h = $f * 1.3; } $action = array('S' => 'SubmitForm', 'F' => $this->_isInForm, 'Flags' => array('ExportFormat')); $this->pdf->Button($name, $w, $h, $param['value'], $action, $prop, array(), $x, $y); break; case 'reset': $w = $this->parsingCss->value['width']; if (!$w) { $w = 40; } $h = $this->parsingCss->value['height']; if (!$h) { $h = $f * 1.3; } $action = array('S' => 'ResetForm'); $this->pdf->Button($name, $w, $h, $param['value'], $action, $prop, array(), $x, $y); break; case 'button': $w = $this->parsingCss->value['width']; if (!$w) { $w = 40; } $h = $this->parsingCss->value['height']; if (!$h) { $h = $f * 1.3; } $action = isset($param['onclick']) ? $param['onclick'] : ''; $this->pdf->Button($name, $w, $h, $param['value'], $action, $prop, array(), $x, $y); break; default: $w = 0; $h = 0; break; } $this->_maxX = max($this->_maxX, $x + $w); $this->_maxY = max($this->_maxY, $y + $h); $this->_maxH = max($this->_maxH, $h); $this->_maxE++; $this->pdf->setX($x + $w); $this->parsingCss->load(); $this->parsingCss->fontSet(); return true; }